机器学习之无监督聚类问题
来源:互联网 发布:js将字符串转换为json 编辑:程序博客网 时间:2024/06/08 15:06
#无监督:数据没有明确说明属于哪一类,无需去训练模型import pandas as pdvotes = pd.read_csv("D:\\test\machineLearning\\114_congress.csv")print(votes["party"].value_counts())print votes.mean()
R 54D 44I 2Name: party, dtype: int6400001 0.32500004 0.57500005 0.53500006 0.94500007 0.54500008 0.41500009 0.54500010 0.98500020 0.52500026 0.54500032 0.41000038 0.48000039 0.51000044 0.46000047 0.370dtype: float64
from sklearn.metrics.pairwise import euclidean_distances#欧式距离#reshape指定了行的维度,-1代表列的维度由程序自己推断print(euclidean_distances(votes.iloc[0,3:].reshape(1,-1),votes.iloc[1,3:].reshape(1,-1)))distance = euclidean_distances(votes.iloc[0,3:].reshape(1,-1),votes.iloc[2,3:].reshape(1,-1))
[[ 1.73205081]]
import pandas as pdfrom sklearn.cluster import KMeans#KMeans是聚类算法的一种,n_clusters是堆的个数,你需要分成几类,#random_state=1代表随机值是一样的,这样一来聚类的结果也是一样的kmeans_model = KMeans(n_clusters=2,random_state=1)#求出分类后的距离senator_distances = kmeans_model.fit_transform(votes.iloc[:,3:])
#分成2类,0,1代表不同的类,label就是将这些打印出来labels=kmeans_model.labels_#print labels #从这一步分数据可以看出,数据被分成2类,其中D和R区分明显,说明分类有效#crosstab生成一个列表,统计一下不同的label有多少值print(pd.crosstab(labels,votes["party"]))democratic = votes[(labels == 1)&(votes["party"]!="D")]
party D I Rrow_0 0 41 2 01 3 0 54
#以上数据label为1的D有3个,和R走的很近,如何将他们找出来democratic = votes[(labels == 1)&(votes["party"]=="D")]print democratic
name party state 00001 00004 00005 00006 00007 00008 00009 \42 Heitkamp D ND 0.0 1.0 0.0 1.0 0.0 0.0 1.0 56 Manchin D WV 0.0 1.0 0.0 1.0 0.0 0.0 1.0 74 Reid D NV 0.5 0.5 0.5 0.5 0.5 0.5 0.5 00010 00020 00026 00032 00038 00039 00044 00047 42 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 56 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 74 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
import matplotlib.pyplot as plt#用散点图表示,使数据更加清晰plt.scatter(x=senator_distances[:,0],y=senator_distances[:,1],c=labels)plt.show()
#离群点分析,距离最远extremism = (senator_distances ** 3).sum(axis=1)votes["extremism"] = extremismvotes.sort_values("extremism",inplace=True,ascending=False)print votes.head(2)
name party state 00001 00004 00005 00006 00007 00008 00009 \98 Wicker R MS 0.0 1.0 1.0 1.0 1.0 0.0 1.0 53 Lankford R OK 0.0 1.0 1.0 0.0 1.0 0.0 1.0 00010 00020 00026 00032 00038 00039 00044 00047 extremism 98 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0 46.250476 53 1.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0 46.046873
0 0
- 机器学习之无监督聚类问题
- 机器学习之无监督聚类问题
- 王小草【机器学习】笔记--无监督算法之聚类
- 机器学习笔记之无监督学习
- 机器学习之监督学习和无监督学习
- 机器学习之有监督和无监督
- 机器学习笔记11——无监督学习之k-means聚类算法
- 机器学习--无监督学习之K-means聚类方法
- 《Python机器学习及实践》----无监督学习之数据聚类
- 机器学习笔记:K-Means无监督聚类算法
- 机器学习--无监督学习
- 什么是无监督学习(监督学习,半监督学习,无监督聚类)?
- 机器学习----无监督学习算法之异常检测
- 机器学习之无监督学习与监督学习的区别
- 机器学习之“有监督学习”和“无监督学习”(转载)
- 机器学习相关内容介绍,包括有监督、无监督学习,线性回归分类问题等
- 分类与聚类 监督学习与无监督学习
- 分类与聚类 监督学习与无监督学习
- 160. Intersection of Two Linked Lists
- python 迭代器与生成器 详解
- JAVA常用类库之String类
- Java HashMap的工作原理
- mysql优化
- 机器学习之无监督聚类问题
- 【优化改进】Linux进程文件瘦身——Linux环境验证 form http://sammor.iteye.com/blog/2147762
- Android常见分辨率问题
- Hbuilder打包安卓app步骤
- JQuery常用选择器
- 微擎安装
- poj-1716【贪心】
- 【九度OJ】题目1179:阶乘 解题报告
- HTTP协议概览