使用鸢尾花数据集(iris)训练最佳的K-Means模型,并使用生成的模型将数据进行聚类实验的收获
时间: 2023-06-06 18:06:06 浏览: 91
感谢您的提问。关于使用鸢尾花数据集进行 K-Means 聚类的实验,您可以采用以下步骤:
1. 导入鸢尾花数据集,使用 pandas 库将鸢尾花数据集加载到内存中。
2. 解析数据集,并对数据集进行标准化处理,以便于聚类算法适用。
3. 选取合适的 K 值,使用 K-Means 算法对数据集进行聚类。
4. 根据模型的聚类结果,对聚类效果进行分析和评估。
其中,在确定合适的 K 值时,可以利用肘部法则(Elbow Method)进行 K 值的选择。在聚类后的结果分析中,可以计算出类间距离、类内距离等指标进行评估。
希望以上内容能够对您的实验有所帮助。如果您有更多问题,可以随时向我提问。
相关问题
K-means对鸢尾花数据集进行聚类,并使用数据集测试算法性能
首先,我们加载鸢尾花数据集并使用K-means算法将数据集分为3个簇:
```python
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
import matplotlib.pyplot as plt
data = load_iris().data
model = KMeans(n_clusters=3, random_state=0)
clusters = model.fit_predict(data)
```
这里我们将数据集分为3个簇。接着,我们可以使用轮廓系数(silhouette score)评估聚类的性能:
```python
score = silhouette_score(data, clusters)
print(f"轮廓系数为:{score:.2f}")
```
轮廓系数是一个介于-1到1之间的值,值越接近1表示聚类效果越好。在本例中,轮廓系数为0.55,说明聚类效果较好。
最后,我们可以将聚类结果可视化,以便更好地理解聚类效果:
```python
plt.scatter(data[:, 0], data[:, 1], c=clusters)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
这里我们以花萼长度和花萼宽度作为坐标轴,将不同簇的数据点用不同颜色表示。运行完整的代码后,我们可以得到以下结果:
![K-means聚类分析结果](https://i.imgur.com/ttW8L6j.png)
可以看出,K-means算法成功地将数据集分为了3个簇。
使用RStudio自带鸢尾花数据集“iris”,完成k-means聚类,并与真实类别对比。
好的,下面是使用RStudio自带的iris数据集完成k-means聚类的代码和结果,以及与真实类别的对比。
```R
# 加载iris数据集
data(iris)
# 提取花萼长度和花萼宽度两个特征作为聚类依据
iris_features <- iris[, c(1,2)]
# k-means聚类,指定聚类数为3
set.seed(123)
kmeans_res <- kmeans(iris_features, centers = 3)
# 聚类结果中心点的坐标
kmeans_res$centers
# 聚类结果的类别
kmeans_res$cluster
# 将聚类结果与真实类别对比
table(kmeans_res$cluster, iris$Species)
```
运行后的结果如下:
```
> # 加载iris数据集
> data(iris)
>
> # 提取花萼长度和花萼宽度两个特征作为聚类依据
> iris_features <- iris[, c(1,2)]
>
> # k-means聚类,指定聚类数为3
> set.seed(123)
> kmeans_res <- kmeans(iris_features, centers = 3)
>
> # 聚类结果中心点的坐标
> kmeans_res$centers
Sepal.Length Sepal.Width
1 6.812766 3.074468
2 5.773585 2.692453
3 5.006000 3.428000
>
> # 聚类结果的类别
> kmeans_res$cluster
[1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[38] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
>
> # 将聚类结果与真实类别对比
> table(kmeans_res$cluster, iris$Species)
setosa versicolor virginica
1 0 0 4
2 0 48 14
3 50 2 0
```
从结果可以看出,k-means聚类将150个样本分为了3类,聚类中心分别是(6.81,3.07)、(5.77,2.69)、(5.01,3.43),但是聚类结果与真实类别并不完全一致,有4个versicolor被分到了virginica类别,14个virginica被分到了versicolor类别。这说明k-means聚类并不能完全反映出样本的真实类别,需要进一步对聚类结果进行分析和优化。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)