1. 什么是无监督学习
没有目标值的时候,采用无监督学习。因为不存在学习的对象。
2. 无监督学习包含算法
1. 聚类算法:
K-means(K均值聚类)
2. 降维:
PCA
3.K-means的原理(K-means的算法步骤)
1. 首先,随机寻找K个点(这里的K是想要分成的份数)
2. 第二步,把所有点,向这K个点进行求取距离,距离近的点,标成不同的颜色
3. 第三步,把所有颜色相同的点,进行求取均值,形成一个新的K个中心
4. 第四步,重复第二个步骤,直到前后两次的聚类中心重合或者相差不大的时候,停止聚类
4. K-means的API
sklearn.cluster.KMeans(n_clusters=8, init='k-means++',max_iter)
n_clusters:开始聚类的中心点,也就是K值的个数
init:初始化方法,也就是开始选取聚类点的方法,默认为'k-means++'
max_iter: 迭代次数的限定
5. K-means模型的评估方法“轮廓系数法”
1. 方法详解:
SCi = (b_i - a_i) / max(b_i, a_i)
a_i代表的是一个类别中的一个样本和另一个类别中样本的距离的平均值
b_i代表的是一个类别中的一个样本和该类别中样本的距离的平均值
当 b_i >> a_i 时,SCi ≈ 1
当 b_i >> a_i 时,SCi ≈ -1
因此我们可以认为,当SCi接近1时,聚类的效果越好,越能达到“高内聚,低耦合”现象。
因此我们可以认为,当SCi接近-1时,聚类的效果越差,越达不到“高内聚,低耦合”现象。
2. 轮廓系数法API:sklearn.metrics.silhouette_score(data, lambel)
data: 就是我们的数据集
lambel: 就是预测得到的结果
注意,无监督学习一般不会用到数据集划分train_test_split函数
对以下数据进行划分无监督学习划分:
城市名称城市代码交通健康指数交通延时指数高延时运行时间占比拥堵路段里程比平均车速 中山市4420000.7436354841.59591397853.136129031.67919354828.26258065 临沂市3713000.7590064521.56881720448.297473121.57139784929.85091398 兰州市6201000.7404709681.50897849537.992903231.83854838727.91311828 南宁市4501000.7578838711.47892473130.017849461.2681182828.51892473 南昌市3601000.7604129031.49919354836.559032261.61817204330.64521505 南通市3206000.780061291.37322580617.293978490.64129032336.31129032 厦门市3502000.7655354841.48629032335.035806451.60209677433.4133871 台州市3310000.77071.48919354838.171935481.01677419430.18037634 合肥市3401000.7573225811.49645161339.336935481.40650537629.20225806 哈尔滨市2301000.7536225811.56591397848.028494621.94317204328.65483871 嘉兴市3304000.7780451611.38408602221.684354840.52419354830.47215054 大连市2102000.7409419351.62145161359.946236561.82962365629.05290323 太原市1401000.7513032261.5515591439.246989252.11360215131.8844086 常州市3204000.7651516131.43510752730.196881720.6931182831.96709677 徐州市3203000.7556096771.47715053838.261666671.28881720429.62478495 惠州市4413000.7442774191.55236559147.938870971.66005376328.59102151 无锡市3202000.7531580651.41903225830.6451.25580645233.03451613 昆明市5301000.7457645161.54053763443.906881721.97231182828.21462366 泉州市3505000.7853935481.38860215124.014247310.84048387133.10064516 济南市3701000.7449580651.6848387160.752419352.13370967728.18612903 温州市3303000.7508451611.51456989246.594784951.29032258125.28204301 潍坊市3707000.7783451611.53860215149.193548390.70532258128.54231183 烟台市3706000.7679741941.52881720447.670215050.7367204330.69768817 珠海市4404000.7538258061.53408602242.473118281.47177419434.25344086 石家庄市1301000.7571967741.51236559138.799247311.5131182831.24752688 福州市3501000.7509774191.5965591450.627419351.67989247328.88032258 绍兴市3306000.7606451611.49231182840.23279571.06731182827.47043011 贵阳市5201000.7363064521.56102150543.63779573.06763440931.57268817 金华市3307000.7698129031.36860215116.935537630.63247311829.11575269 长春市2201000.7370645161.66747311865.680967742.36365591427.95241935
代码:
from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score from sklearn.preprocessing import StandardScaler import pandas as pd # 1、数据获取 path = "E:Desktop二线城市交通大数据(整理版本).xlsx" data = pd.read_excel(path) data = data.iloc[:, 3:] data.head() # 2、特征工程 标准化 transfer = StandardScaler() data = transfer.fit_transform(data) # 3、K-means聚类 estimator = KMeans(n_clusters=3) estimator.fit(data) y_predict = estimator.predict(data) # 4、K-means 模型评估方法:轮廓系数 silhouette_score(data, y_predict)
输出结果:
0.31123484705638604
学习地址:
黑马程序员3天快速入门python机器学习_哔哩哔哩_bilibili
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)