聚类分析

该博客介绍了如何使用Python进行聚类分析,特别是通过欧式距离计算和KMeans算法。首先,博主展示了读取数据、检查缺失值和数据分布的过程。接着,利用sklearn库中的euclidean_distances计算两样本之间的欧式距离,并应用KMeans进行聚类,确定了两个政党(R和D)的成员分配。最后,博主找出民主党中的离群点并根据聚类结果的极端值进行排序,以识别潜在的极端行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import pandas as pda
import numpy as np
import missingno
import matplotlib.pyplot as plt
import seaborn as sns
#读入数据
data=pda.read_csv("114_congress.csv")
#显示前几行
print(data.head())
#查看缺失值
missingno.bar(data,labels=True,color="b")
plt.show()
#产看数据信息
print(data.info())
print(data.describe())
print(data.shape)
# (100, 18)
#查看多少党派
print(data["party"].value_counts())
# R    54
# D    44
# I     2
print(len(data["name"].value_counts()))
#100无重名
#使用欧式聚类计算相似度
print("=====================欧式距离=================================")
from sklearn.metrics import euclidean_distances

print(euclidean_distances(data.iloc[0,3:-1].reshape(1,-1),data.iloc[1,3:-1].reshape(1,-1)))

# print(help(euclidean_distances))
#使用聚类方法
from sklearn.cluster import KMeans
model=KMeans(n_clusters=2,random_state=1)

distances=model.fit_transform(data.iloc[:,3:])
# print("distances",distances)


labels=model.labels_
print(labels)
print(pda.crosstab(labels,data["party"]))
democratic_outliers=data[(labels==1) & (data["party"]=="D")]
print(democratic_outliers)

plt.scatter(x=distances[:,0],y=distances[:,1],c=labels)
plt.show()
print("==============离群点================")
extremism=(distances**3).sum(axis=1)
print(extremism)
data["extremism"]=extremism
print(data.head())
print("==============================")
data.sort_values("extremism",inplace=True,ascending=False)
print(data.head())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值