python实验四:聚类模型KMeans算法及其评价

目录

一、题目描述

二、实验代码

数据集:下载积分已改为0,请下载

一、题目描述

seeds数据集存放了不同品种小麦的区域、周长、压实度、籽粒长度、籽粒宽度、不对称系数、籽粒腹沟长度以及类别数据。该数据集共210条记录,7个特征,1个标签,标签分3类

任务要求:

2.1.读取该数据集seeds_dataset.txt,以\t为分隔符

2.2.将数据的前7列作为待分析数据data,第7列target

2.3.对data进行标准差标准化

2.4.利用Kmeans对数据进行聚类分析,要求聚为3类。

2.5.对K-Means聚类模型进行评价:当聚为2~6类时分别计算FMI指数

2.6.对聚类结果进行分析

二、实验代码

"""
seeds数据集存放了不同品种小麦的区域、周长、压实度、籽粒长度、籽粒宽度、不对称系数、籽粒腹沟长度以及类别数据。
该数据集共210条记录,7个特征,1个标签,标签分3类
任务要求:
2.1.读取该数据集seeds_dataset.txt,以\t为分隔符
2.2.将数据的前7列作为待分析数据data,第7列target
2.3.对data进行标准差标准化
2.4.利用Kmeans对数据进行聚类分析,要求聚为3类。
2.5.对K-Means聚类模型进行评价:当聚为2~6类时分别计算FMI指数
2.6.对聚类结果进行分析
"""
import pandas as pd
import numpy as np

# 2.1.读取该数据集seeds_dataset.txt,以\t为分隔符
seeds = pd.read_table("D:\\seeds_dataset.txt", sep='\t')
print(seeds)
# 2.2.将数据的前7列作为待分析数据data,第7列target
data = seeds.iloc[:, 0:7]
print(data)


# 2.3.对data进行标准差标准化
# 定义标准差标准化方法
def StSc(d):
    d = (d - d.mean()) / d.std()
    return d


# 对数据进行标准差标准化
S_d = StSc(data)
print("执行标准差标准化后的数据:\t", S_d)
# 2.4.利用Kmeans对数据进行聚类分析,要求聚为3类。
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans

seeds = np.array(seeds)
for i in range(1, 210):
    for j in range(0, 7):
        seeds[i, j] = np.float64(seeds[i, j])
seeds_data = seeds[1:210, 0:7]
seeds_target = seeds[1:, 7]
seeds_names = seeds[1, 0:7]
scale = MinMaxScaler().fit(seeds_data)
seeds_dataScale = scale.transform(seeds_data)
kmeans = KMeans(n_clusters=3, random_state=123).fit(seeds_dataScale)
# 2.5.对K-Means聚类模型进行评价:当聚为2~6类时分别计算FMI指数
from sklearn.metrics import fowlkes_mallows_score

for i in range(2, 7):
    kmeans = KMeans(n_clusters=i, random_state=123).fit(seeds_dataScale)
    score = fowlkes_mallows_score(seeds_target, kmeans.labels_)
    print('seeds数据聚%d类FMI评价分值为:%f' % (i, score))

 

 

 

你可能感兴趣的:(Python实验,聚类,人工智能,python,经验分享)