聚类

聚类概述

聚类常见算法

  • 划分法(分裂法) kmeans
  • 层级分析法
  • 密度分析法

聚类三发

kmeans算法概述

  • 随机选择k个点作为聚类中心
  • 计算各个点到这k个点的距离
  • 将对应的点聚到与他最近的这个聚类中心
  • 重新计算聚类中心
  • 比较当前聚类中心与前一次聚类中心,如果是同一个点,得到聚类结果,若为不同的点,则重复2-5

kmeans算法实战

# kmeans算法
# 通过程序实现录取学生的聚类
import pandas as pd
import numpy
import matplotlib.pylab as pyl
import os
from sklearn.cluster import Birch
from sklearn.cluster import KMeans

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
fname = os.path.join(BASE_DIR, 'data', 'luqu2.csv')
df = pd.read_csv(fname)
data = df.iloc[:,1:4]
x = data.values
# n_clusters分类,n_jobs指定线程数,max_iter最大循环数
kms = KMeans(n_clusters=2, n_jobs=3, max_iter=500)
# 聚类
y = kms.fit_predict(x)
# print(y)
# 可视化
# x学生序号,y类别
x1 = numpy.arange(0, len(y))
pyl.plot(x1, y, 'o')
pyl.show()
# 通过程序实现商品的聚类
import pandas as pd
import numpy
import matplotlib.pylab as pyl
import pymysql

from sklearn.cluster import Birch
from sklearn.cluster import KMeans
db = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='taobao')
sql = 'select price, comment from taob limit 300;'
df = pd.read_sql(sql, con=db)
x = df.values

kms = KMeans(n_clusters=3, n_jobs=3, max_iter=500)
y = kms.fit_predict(x)
print(y)

for i in range(0, len(y)):
  x1 = df.iloc[i:i+1,0:1].values # 价格
  y1 = df.iloc[i:i+1, 1:2].values # 评论
  if y[i] == 0:
    pyl.plot(x1, y1, '*r')
  elif y[i] == 1:
    pyl.plot(x1, y1, 'sy')
  else:  
    pyl.plot(x1, y1, 'pk')
pyl.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值