聚类分析实战

news/2024/5/20 6:23:02 标签: python, 数据分析, 聚类

聚类分析实战

    • 1、决策树
    • 2、聚类概述
    • 3、聚类常见算法
    • 4、聚类三法
    • 5、K-means算法概述
    • 6、K-means算法实战

上一篇: 数据分类

1、决策树

python"># 决策树
import pandas as pd
fname="data/lesson.csv"
dataf=pd.read_csv(fname,encoding="gbk")
# print(dataf)
# 提取x,y数据
x=dataf.iloc[:,1:5].values
y=dataf.iloc[:,5].values
# print(x)
# print(y)
for i in range(0,len(x)):
	for j in range(0,len(x[i])):
		thisdata=x[i][j]
		if(thisdata=="是" or thisdata=="多" or thisdata=="高"):
			x[i][j]=int(1)
		else:
			x[i][j]=int(-1)
# print(x)
for i in range(0,len(y)):
	thisdata=y[i]
	if(thisdata=="高"):
		y[i]=1
	else:
		y[i]=-1

# 容易错的地方:直接dtc训练
# 正确的做法:转化格式,将x,y转化为数据框,再转化为数组并指定格式
xf=pd.DataFrame(x)
# print(xf)
yf=pd.DataFrame(y)
# print(yf)
x2=xf.values.astype(int)
y2=yf.values.astype(int)
# print(x2,y2)
# 建立决策树
from sklearn.tree import DecisionTreeClassifier as DTC
dtc=DTC(criterion="entropy") # 以信息熵的形式建立决策树
dtc.fit(x2,y2)

# 直接预测销量高低
import numpy as np
x3=np.array([[1,-1,-1,1],[1,1,1,1],[-1,1,-1,1]])
rst=dtc.predict(x3)
print(rst)

# 可视化决策树:决策树往左看是正能量,往右看是负能量
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO
with open("data/dtc.dot","w") as file:
	export_graphviz(dtc,feature_names=["combat","num","promotion","datanum"],out_file=file)

最后,通过Graphviz2.38转化得到是可视化决策树如下:
在这里插入图片描述

2、聚类概述

物以类聚,人以群分,是一种无监督学习。参考链接:聚类

3、聚类常见算法

常见的六大聚类算法
各种聚类算法(原理+代码+对比分析)最全总结

4、聚类三法

  • 划分(分裂)法
  • 层次分析法
  • 密度分析法
  • 网格法
  • 模型法

5、K-means算法概述

参考学习:5 分钟带你弄懂 k-means 聚类
k-means算法的步骤:
1、随机选择k个点作为聚类中心;
2、计算各个点到这k个点的距离;
3、将对应的点聚到与他最近的这个聚类中心;
4、重新计算聚类中心;
5、比较当前聚类中心,如果是通一个人点,得到聚类结果,若为不同点,则重复2-5。

6、K-means算法实战

python">'''
k-means算法的步骤:
	1、随机选择k个点作为聚类中心;
	2、计算各个点到这k个点的距离;
	3、将对应的点聚到与他最近的这个聚类中心;
	4、重新计算聚类中心;
	5、比较当前聚类中心,如果是通一个人点,得到聚类结果,若为不同点,则重复2-5。
'''

# k-means算法
'''
# 通过程序实现录取学生的聚类
import numpy as np
import pandas as pd
import matplotlib.pylab as pyl

fname="data/luqu.csv"
dataf=pd.read_csv(fname)     # 得到的是数据框
# print(dataf)
x=dataf.iloc[:,1:4].values   # 提取数据
# print(x)
# 聚类
from sklearn.cluster import Birch
from sklearn.cluster import KMeans
kms=KMeans(n_clusters=2)
y=kms.fit_predict(x)
# print(y)

# x代表学生序号,y代表学生类别
s=np.arange(0,len(y))
# print(s)
pyl.plot(s,y,"o")
pyl.show()
'''
# 通过程序实现商品的聚类
import pandas as pd
import numpy as np
import matplotlib.pylab as pyl
import pymysql

# 导入数据
conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="csdn")
sql = "select price,comment from taob limit 300"
dataf = pd.read_sql(sql, conn)
# print(dataf)
# 取出数据
x = dataf.iloc[:, :].values
# 聚类
from sklearn.cluster import Birch
from sklearn.cluster import KMeans

kms = KMeans(n_clusters=3)
y = kms.fit_predict(x)
print(y)
for i in range(0, len(y)):
	if (y[i] == 0):
		pyl.plot(dataf.iloc[i:i + 1, 0:1].values, dataf.iloc[i:i + 1, 1:2].values, "*r")
	elif (y[i] == 1):
		pyl.plot(dataf.iloc[i:i + 1, 0:1].values, dataf.iloc[i:i + 1, 1:2].values, "sy")
	elif(y[i] == 2):
		pyl.plot(dataf.iloc[i:i + 1, 0:1].values, dataf.iloc[i:i + 1, 1:2].values, "pk")
pyl.show()

'''
# 作业:使用聚类来实现文本的聚类
1、用爬虫去爬100个百度百科的词条内容
2、将这些内容分别存入各文件中
3、进行分词,计算tf-idf
4、进行聚类
5、对文档进行分类,k=3
'''

下一篇:


http://www.niftyadmin.cn/n/1563100.html

相关文章

贝叶斯算法的应用

贝叶斯算法的应用上一篇:聚类分析实战手写体数字的识别# -*- coding: utf-8 -*- # -------------------------------------- # Time : 2019/10/23 13:25 # Author : hxf # Email : 1870212598qq.com # File : bayes_use.py # Description : 贝叶斯算法的应…

关于#pragma 预处理指令用法

在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C语言完全兼容的情况下,给出主机或操作系统专有的特征。…

【bug修复】—— Github Push报错erro 10054解决方法

参考链接:https://www.cnblogs.com/ljq66/articles/10261601.html

pcDuino的linux移植四简单驱动开发

2019独角兽企业重金招聘Python工程师标准>>> 开发环境系统:ubuntu 10.04.4单板:pcDuino(全志A10)编译器:arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 搭建开发环境详见ubuntu 10.04.4开发环境配置。 目标1.配…

Apriori算法与项目实战

Apriori算法与项目实战1、关联分析概述2、Apriori算法3、使用Apriori算法实现课程关联分析上一篇: 人工神经网络1、关联分析概述 关联分析 Apriori关联分析算法概述 2、Apriori算法 Apriori算法总结 3、使用Apriori算法实现课程关联分析 # -*- coding: utf-8 -…

01_python数据分析基础介绍

数据分析基础对数据分析进行初步认识为什么要学习数据分析什么是数据分析环境安装认识 jupyter notebook对数据分析进行初步认识 数据分析是你对数据进行剖析,分析规律必不可少的环节。为什么要学习数据分析 数据分析涉及各行各业,这个世界离不开数据。…

Zookeeper【最新版V3.4.6】- 翻译系列 1: FAQ

2019独角兽企业重金招聘Python工程师标准>>> ZooKeeper客户端可以通过创建一个ZooKeeper的句柄,从而与ZooKeeper服务建立一个会话(session)。会话创建之后,句柄的初始状态为CONNECTING状态,此时客户端句柄会…

应用程序框架实战五:应用程序框架的组成

应用程序框架是用来支持应用程序开发的,它就好像一个保姆,在开发的每一个细节对程序员呵护倍至。那么,应用程序框架应该包含哪些内容呢?原则上来说,只要期望能够复用的所有东西,都可以进入你的框架。 开发新…