一.無監督學習包含的演算法:
聚類:kmeans聚類演算法
降維:pca
之所以叫無監督學習:是因為模型是從無標籤的資料開始學習,沒有目標值。
二.kmeans聚類
1.聚類演算法步驟
定義:將高維資料轉化為低維資料的過程,在此過程中可能會捨棄原有資料,創造新的變數
作用:降低原始資料的維數(複雜度),損失少量資訊,避免模型的過擬合。
應用:回歸分析或者聚類分析中
計算過程:找到一條合適的直線,通過矩陣運算得出主成分分析的結果。
api:sklearn.decomposition.pca(n_components=none)
n_components :小數,表示保留百分之多少的資訊;整數:減少到多少特徵
pca.fit_transform(x) x為numpy,array型別的資料格式
返回值:轉換後指定維度的數值。
3.kmeans效能評估的指標
輪廓係數
原理:使得內部距離最小化,外部距離最大化
分析過程:我們以乙個點(藍1)為例
輪廓係數api
sklearn.metrics.silhouette_score(x,labels)
kmeans總結:採用迭代式演算法,直觀易懂且實用;但是容易收斂到區域性最優解。
三.案例(用kmeans聚類探索使用者對不同物品的喜好)
1.獲取資料
import pandas as pd
from sklearn.decomposition import pca
import os
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)
今天我給大家分享了關於監督學習的一些基礎,下次我將給大家分享監督學習更加深層次的內容。 有監督學習和無監督學習
是否有監督 supervised 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習 這裡我參考網路資料將機器學習分為 有監督學習 無監督學習 半監督學習和強化學習四類。回歸 regression 其資料集是給定乙個函式和它的一些座標點,然後通過回歸分析的演算法...
有監督學習和無監督學習
機器學習的常用方法,主要分為有監督學習 supervised learning 和無監督學習 unsupervised learning 監督學習,就是人們常說的分類,通過已有的訓練樣本 即已知資料以及其對應的輸出 去訓練得到乙個最優模型 這個模型屬於某個函式的集合,最優則表示在某個評價準則下是最佳...
監督學習和無監督學習
機器學習要解決的第一類問題是分類問題。機器學習的另一項任務是回歸,它主要用於 數值型資料。大多數人可能都見過回歸的例子 資料擬合曲線 通過給定資料點的最優擬合曲線。分類和回歸都屬於監督學習,之所以稱之為監督學習,是因為這類演算法必須知道 什麼,即目標變數的分類資訊。與監督學習對應的是無監督學習,此時...