有监督学习和无监督学习_无监督学习

4fc3d85d5b9406d5a7e192695189075e.png

一.无监督学习包含的算法:

聚类:kmeans聚类算法

降维:PCA

之所以叫无监督学习:是因为模型是从无标签的数据开始学习,没有目标值。

二.kmeans聚类

1.聚类算法

步骤

  • 随机选择特征空间中的k 个点作为初始聚类中心
  • 对于其他每一个点,计算其到每一个聚类中心的距离,选择距离最近的一个聚类中心点作为标记类别,将所有的点划分到所属的类别
  • 对每个类别重新计算出新的聚类中心点(平均值)
  • 如果计算出的新的中心点与原来的中心点一样,那么结实否则重复进行第二步骤

55b218dfba51aca9608f0dfbf7957a9b.png

API:sklearn.cluster.KMeans(n_clusters=8,init="k-means++")

  • n_clusers:开始的聚类中心数量
  • init :聚类方法,默认为kmeans++
  • labels_:默认标记的类型,可以和真实值比较

2.PCA

定义:将高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据,创造新的变量

作用:降低原始数据的维数(复杂度),损失少量信息,避免模型的过拟合。

应用:回归分析或者聚类分析中

3f13031c0f58c1ae6899d55d043825f7.png

计算过程:找到一条合适的直线,通过矩阵运算得出主成分分析的结果。

API:sklearn.decomposition.PCA(n_components=None)

n_components :小数,表示保留百分之多少的信息;整数:减少到多少特征

PCA.fit_transform(X) X为numpy,array类型的数据格式

返回值:转换后指定维度的数值。

3.kmeans性能评估的指标

轮廓系数

bd374ef5cc776df5f3f011af4949565c.png

原理:使得内部距离最小化,外部距离最大化

0b26fa15389d02722021c837082107ae.png

分析过程:我们以一个点(蓝1)为例

  • 计算出蓝1这个点离本身族群所有点的距离的平均值a_i
  • 蓝1这个点到其他族群的距离的平均值,取最小的那个距离作为b_i
  • 根据公式,极端值进行考虑:如果b_i<<a_i,趋近于-1,聚类效果不好,轮廓系数的值是介于[-1,1]之间,越是趋近于1,代表内聚度和分离度都相对较优。

轮廓系数API

sklearn.metrics.silhouette_score(X,labels)

  • 计算所有样本的平均轮廓系数
  • X:特征值
  • labels:被聚类标记的目标值

kmeans总结:采用迭代式算法,直观易懂且实用;但是容易收敛到局部最优解。

三.案例(用kmeans聚类探索用户对不同物品的喜好)

1.获取数据
import pandas as pd
from sklearn.decomposition import PCA
import os
os.chdir("F:qqfiles数据科学学习视频机器学习视频instacart")
order_products=pd.read_csv("order_products__prior.csv")
products=pd.read_csv("products.csv")
orders=pd.read_csv("orders.csv")
aisles=pd.read_csv("aisles.csv")
order_products.head()
 
2.数据合并
#让aisle_id与product_id连接在一起
tab1=pd.merge(aisles,products,on=["aisle_id"])
tab2=pd.merge(tab1,order_products,on=["product_id"])
tab3=pd.merge(tab2,orders,on=["order_id"])
tab3.head()
table=pd.crosstab(tab3["user_id"],tab3["aisle"])
抽取部分数据进行分析
data=table[:10000]

3.PCA
transfer=PCA(n_components=0.95)
data_new=transfer.fit_transform(data)

4.估计器
from sklearn.cluster import KMeans
estimator=KMeans(n_clusters=3)
estimator.fit(data_new)
y_predict=estimator.predict(data_new)
y_predict[:100]

5.模型评估
轮廓系数
from sklearn.metrics import silhouette_score
silhouette_score(data_new,y_predict)

8c25b682623a2a1d4aa638d355497aed.png

今天我给大家分享了关于监督学习的一些基础,下次我将给大家分享监督学习更加深层次的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值