k-means聚类算法python代码
时间: 2023-03-29 10:04:00 浏览: 84
以下是 k-means 聚类算法的 Python 代码:
```python
import numpy as np
from sklearn.cluster import KMeans
# 生成随机数据
data = np.random.rand(100, 2)
# 聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(data)
# 输出聚类结果
print(kmeans.labels_)
```
这段代码可以生成 100 个二维随机数据,并使用 k-means 算法将其聚为 3 类。最后输出每个数据点所属的类别。
相关问题
K-Means聚类算法python代码
以下是K-Means聚类算法的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
class KMeans:
def __init__(self, k=3, max_iter=100):
self.k = k
self.max_iter = max_iter
def fit(self, X):
# 随机初始化质心
self.centers = X[np.random.choice(X.shape[0], self.k, replace=False)]
for i in range(self.max_iter):
# 分配数据点到最近的质心
labels = np.argmin(np.sqrt(((X - self.centers[:, np.newaxis])**2).sum(axis=2)), axis=0)
# 更新质心
new_centers = np.array([X[labels == j].mean(axis=0) for j in range(self.k)])
# 如果质心不再移动,退出循环
if np.allclose(self.centers, new_centers):
break
self.centers = new_centers
def predict(self, X):
return np.argmin(np.sqrt(((X - self.centers[:, np.newaxis])**2).sum(axis=2)), axis=0)
```
使用示例:
```python
# 生成随机数据
np.random.seed(42)
X = np.random.randn(500, 2)
# 初始化KMeans算法
kmeans = KMeans(k=3)
# 训练模型
kmeans.fit(X)
# 预测数据
labels = kmeans.predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(kmeans.centers[:, 0], kmeans.centers[:, 1], marker='x', s=200, linewidths=3, color='r')
plt.show()
```
输出结果如下所示:
![KMeans聚类算法结果](https://i.imgur.com/nWQmVy0.png)
可以导入房价数据的k-means聚类算法python代码
以下是一个简单的 Python 代码示例,用于将房价数据导入并使用 K-Means 聚类算法进行聚类:
```python
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 读入数据
house_prices = pd.read_csv('house_prices.csv')
# 选择需要聚类的特征
features = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']
# 对特征进行标准化
scaler = StandardScaler()
scaled_features = scaler.fit_transform(house_prices[features])
# K-Means 聚类
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(scaled_features)
# 打印每个聚类的样本数量
print(pd.Series(kmeans.labels_).value_counts())
# 将聚类结果添加到原始数据集中
house_prices['Cluster'] = kmeans.labels_
# 输出聚类结果
print(house_prices.groupby('Cluster')[features].mean())
```
在此示例中,我们从一个名为“house_prices.csv”的文件中加载数据,并选择要聚类的特征。然后,我们使用 `StandardScaler` 对特征进行标准化,以便在执行 K-Means 聚类算法时归一化所有特征值。接下来,我们使用 `KMeans` 类定义一个 K-Means 聚类模型,并将其与标准化的特征数据进行拟合。我们使用 `value_counts()` 函数打印每个聚类的样本数量,并将聚类结果作为一个新的列添加到原始数据集中。最后,我们输出每个聚类的平均特征值,以便更好地了解聚类结果。
请注意,此示例仅用于说明如何使用 K-Means 聚类算法进行聚类,并且可能需要根据您的具体数据集进行更改。