多元统计分析实验-聚类分析

1、实验目的

通过本实验使学生能熟练应用python语言进行系统聚类分析相关软件的开发工作。

2、 实验内容

为比较10种红葡萄酒的质量,由5名品酒师对每种酒的颜色、香味、甜度、纯度和果味6项指标进行打分,最低分1分,最高分为10分,得到每种酒的每项指标的平均得分(见下图)。

图3 10种红葡萄酒的得分数据表

使用图3数据完成以下内容。

1、使用SPSS软件对图3数据采用系统聚类法进行分析;

2、用python语言编程实现系统聚类法分析,并运行上述数据,结果与第1步骤中的结果进行比对,系统聚类法实现最小距离、最大距离、重心距离、类平均距离四种中的两种,同时距离的衡量实现欧式距离、绝对距离、切贝谢夫距离、明可夫斯基距离的两种。

  1. 使用SPSS软件对图3数据采用系统聚类法进行分析;

最小距离+欧式

 

 

最大距离+切贝谢夫距离

 

 2用python语言编程实现系统聚类法分析,并运行上述数据,结果与第1步骤中的结果进行比对,系统聚类法实现最小距离、最大距离、重心距离、类平均距离四种中的两种,同时距离的衡量实现欧式距离、绝对距离、切贝谢夫距离、明可夫斯基距离的两种。

最小距离+欧式距离

import pandas as pd
import scipy.cluster.hierarchy as sch
from sklearn.cluster import AgglomerativeClustering
from sklearn.preprocessing import MinMaxScaler
from matplotlib import pyplot as plt

data = pd.read_csv("实验三数据.csv",encoding="gbk") #读入数据
#清除‘酒’这列数据
data = data.drop(['酒'], axis=1)
df = MinMaxScaler().fit_transform(data)

# 建立模型
model = AgglomerativeClustering(n_clusters=3)
model.fit(df)
data['类别标签'] = model.labels_
print(data.head())

# 画图
#single为最近邻点算法,euclidean为欧式距离
ss = sch.linkage(df,method='single', metric='euclidean')
sch.dendrogram(ss)
plt.show()

运行结果

 最大距离+切贝谢夫距离

import pandas as pd
import scipy.cluster.hierarchy as sch
from sklearn.cluster import AgglomerativeClustering
from sklearn.preprocessing import MinMaxScaler
from matplotlib import pyplot as plt

data = pd.read_csv("实验三数据.csv",encoding="gbk") #读入数据
#清除‘酒’这列数据
data = data.drop(['酒'], axis=1)
df = MinMaxScaler().fit_transform(data)

# 建立模型
model = AgglomerativeClustering(n_clusters=3)
model.fit(df)
data['类别标签'] = model.labels_
print(data.head())

# 画图
#complete为最远邻点算法,chebychev为切贝谢夫距离
ss = sch.linkage(df,method='complete', metric='chebychev')
sch.dendrogram(ss)
plt.show()

 

运行结果


参考博客:机器学习之聚类算法(五)层次聚类代码实现及模型可视化 

                   scipy.cluster.hierarchy库中linkage函数的参数

相关代码及数据:蓝奏云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

無垠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值