日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

非监督学习

發布時間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非监督学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?非監督學習

1 什么是非監(unsupervised learning)督學習

無監督學習,就是不受監督的學習,一種自由的學習方式。該學習方式不需要先驗知識進行指導,而是不斷地自我認知,自我鞏固,最后進行自我歸納,在機器學習中,無監督學習可以被簡單理解為不為訓練集提供對應的類別標識(label),其與有監督學習的對比如下: 有監督學習(Supervised Learning)下的訓練集:(x(1),y(1)),(x(2),y2)(x(1),y(1)),(x(2),y2)無監督學習(Unsupervised Learning)下的訓練集:(x(1)),(x(2)),(x(3))(x(1)),(x(2)),(x(3))在有監督學習中,我們把對樣本進行分類的過程稱之為分類(Classification),而在無監督學習中,我們將物體被劃分到不同集合的過程稱之為聚類(Clustering)。

2?非監督學習步驟

假設現在又1千個數據,有x1,x2兩個特征,現在對這1000個數據進行聚類,首先聚類的話有多少個類別就聚成多少類,假設K是把數據劃分成多少個類別,這個個數是根據業務來定的,這個K值有兩種情況,一種是知道個數,一種是不知道,不知道個數的話就相當于超參數。

假設知道K為3,那么怎么做呢?①隨機在數據中抽取3個樣本,當做3個類別的中心點(k1,k2,k3);

②計算其余的點分別到這3個中心點的距離,每一個樣本有3個距離(a,b,c),從中選出一個距離最近的點作為自己的標記,形成3個族群;

③分別計算這3個族群的平均值,把3個平均值與之前的3個舊中心點進行比較,如果相同,結束聚類,如果不同把這3個平均值當做新的中心點,重復第二步。

3?非監督學習之k-means

K-means通常被稱為勞埃德算法,這在數據聚類中是最經典的,也是相對容易理解的模型。

K-means算法執行的過程分為如下4個階段:

①隨機設置K個特征空間內的點作為初始的聚類中心 ;

②對于其他每個點計算到K個中心的距離,未知的點選擇最近的一個聚類 中心點作為標記類別 ;

③接著對著標記的聚類中心之后,重新計算出每個聚類的新中心點(平 均值) ;

④如果計算得出的新中心點與原中心點一樣,那么結束,否則重新進行 第二步過程

4 k-means API

sklearn.cluster.KMeans

sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)

k-means聚類? ? ? ? ? ? ? ? ? ? n_clusters:開始的聚類中心數量 (就是把這些樣本分成多少個類別)

init:初始化方法,默認為'k-means ++’? ? ? ? ? ? ? ? ? ? labels_:默認標記的類型,可以和真實值比較(不是值比較)

方法:

? ? ? ? ? ?fit(X,y=None)使用X作為訓練數據擬合模型

? ? ? ? ? ?predict(X)預測新的數據所在的類別

屬性:

? ? ? ? ? ?clustercenters集群中心的點坐標

? ? ? ? ? ?labels_每個點的類別

聚類是做在分類之前的,有的數據沒有目標值的時候,應該先做聚類,然后再預測類別。

?

5 Kmeans性能評估指標

假設分為3個類別如下圖,當聚類的時候最好的結果非常相似的樣本變成一個類別,那也就是說外部距離是最大的,內部這些樣本是非常相似的。所以外部距離(族群與族群之間的距離),越大是越好的,內部各樣本之間距離越小越好,這就是聚類的目的。

評估標準就是輪廓系數。那么是怎么評估的呢?對于每一個樣本都是有輪廓系數的,假設有一點藍1,①計算藍1到自身類別的點的距離的平均值記做ai;②分別計算藍1到紅色類別和綠色類別所有點的距離取出平均值b1,b2,取出最小值當做bi;③藍1的輪廓系數就為(bi-ai)/(max(bi ai));④在極端情況下,假設聚類非常好,外部距離非常大,內部距離非常小,那么bi>>ai(bi遠大于ai)那么輪廓系數就為1,如果情況最差ai>>bi,那么輪廓系數就為-1,所以每一個樣本的輪廓系數在[-1,1]區間,越靠近1是越好的

Kmeans性能評估指標API?sklearn.metrics.silhouette_score

sklearn.metrics.silhouette_score(X, labels) 計算所有樣本的平均輪廓系數

X:特征值

labels:被聚類標記的目標值

?

6 案例

from sklearn.datasets import load_digits from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score # 加載數據 ld = load_digits()# 聚類 k = KMeans(n_clusters=4) k.fit_transform(ld.data) print("每個點的類別",k.labels_[:20]) print("評論聚類效果的輪廓系數",silhouette_score(ld.data,k.labels_))

7 總結

特點分析:采用迭代式算法(一步一步修改中心點),直觀易懂并且非常實用

缺點:容易收斂到局部最優解(多次聚類) ? ? ? ? ? ? ?

需要預先設定簇的數量(k-means++解決)

總結

以上是生活随笔為你收集整理的非监督学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。