随机生成k个类中心点(补全代码) #基本思路:随机产生k个点,坐标值介于所有样本数据集坐标的取值区间。 """ Parameters: dataSet - 数据集 k - 聚类数 Returns: centroids - 随机类中心 """ def randCent(dataSet, k):
时间: 2024-03-12 07:43:06 浏览: 11
```python
import numpy as np
n = np.shape(dataSet)[1] # 数据集中每个样本的特征数
centroids = np.mat(np.zeros((k, n))) # 初始化k个类中心点
# 遍历每个特征,找到它们的最大最小值
for j in range(n):
minJ = min(dataSet[:,j])
rangeJ = float(max(dataSet[:,j]) - minJ)
# 在最大最小值范围内随机生成k个点
centroids[:,j] = np.mat(minJ + rangeJ * np.random.rand(k,1))
return centroids
```
相关问题
#修改上述函数,随机质心产生的方法为从已有的样本数据中随机选取k个点。(补全代码) """ Parameters: dataSet - 数据集 k - 聚类数 Returns: centroids - 随机类中心 """ def randCent1(dataSet, k):
```
import random
def randCent1(dataSet, k):
n = dataSet.shape[1] # 特征数
centroids = np.empty((k,n)) # 初始化随机质心矩阵
for i in range(k):
index = random.randint(0, len(dataSet)-1) # 从已有的样本数据中随机选取一个点作为质心
centroids[i] = dataSet[index]
return centroids
```
修改上述函数,随机质心产生的方法为从已有的样本数据中随机选取k个点。(补全代码) """ Parameters: dataSet - 数据集 k - 聚类数 Returns: centroids - 随机类中心 """ def randCent1(dataSet, k):
```
import random
def randCent1(dataSet, k):
n = dataSet.shape[1]
centroids = np.empty((k,n))
for j in range(n):
minJ = min(dataSet[:,j])
rangeJ = float(max(dataSet[:,j]) - minJ)
centroids[:,j] = minJ + rangeJ * np.random.rand(k)
return centroids
```
修改后的代码如上所示。其中,通过 `np.random.rand(k)` 从 0 到 1 之间随机生成 k 个数,然后将其乘上每个特征的取值范围,再加上该特征的最小值,即可得到 k 个随机质心。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)