主要方法:k-means
k-means步驟:
1.隨機設定k個特徵空間內的點作為初始的聚類中心
2.對於其他每個點計算到k個中心的距離,未知的點選擇最近的乙個聚類中心點作為標記類別
3.對著標記的聚類中心之後,重新計算出每個聚類的新中心點(平均值)
4.如果計算得出的新中心點與原中心點一樣,那麼結束,否則重新進行第二步過程(以新中心點作為聚類中心)
k-means api:sklearn.cluster.kmeans
語法:
sklearn.cluster.kmeans(n_clusters=8,init=『k-means++』)----k-means聚類
n_clusters:開始的聚類中心數量
init:初始化方法,預設為』k-means ++』
labels_:預設標記的型別,可以和真實值比較(不是值比較)
kmeans效能評估指標
kmeans效能評估指標api:sklearn.metrics.silhouette_score
語法:
sklearn.metrics.silhouette_score(x, labels)計算所有樣本的平均輪廓係數
x:特徵值
labels:被聚類標記的目標值
kmeans總結
特點分析:
採用迭代式演算法,直觀易懂並且非常實用
缺點:
容易收斂到區域性最優解(多次聚類)
需要預先設定簇的數量(k-means++解決)
案例:k-means對instacart market使用者聚類
import pandas as pd
from sklearn.decomposition import pca
from sklearn.cluster import kmeans
import matplotlib.pyplot as plt
from sklearn.metrics import silhouette_score
# 讀取四張表的資料----資料與.py檔案在同一目錄下
prior = 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")
# 合併為一張表
mt = pd.merge(prior,products,on=['product_id','product_id'])
mt = pd.merge(mt,orders,on=['order_id','order_id'])
mt = pd.merge(mt,aisles,on=['aisle_id','aisle_id'])
# 交叉表(特殊的分組工具)
cross = pd.crosstab(mt['user_id'],mt['aisle'])
# 主成分分析
pca = pca(n_components=0.9)
data = pca.fit_transform(cross)
# 減少樣本數量
x = data[:500]
# 假設使用者一共分為4個類別
km = kmeans(n_clusters=4)
km.fit(x)
predict = km.predict(x)
# 顯示結果
colored = ['orange', 'green', 'blue', 'red']
colr = [colored[i] for i in predict]
plt.scatter(x[:, 1], x[:, 20], color=colr)
plt.show()
# 評判聚類效果--輪廓係數
print(silhouette_score(x,predict))
結果為:
監督學習和非監督學習
重新看一遍ng的機器學習課程,第一次寫讀書筆記,希望能夠堅持下來!對於監督學習,首先來看乙個例子,如下圖.圖中的資料來自r語言中的boston資料集,其中lstat軸表示地位較低的人口比重,medv軸表示median value of owner occupied homes in 1000s。如果...
監督學習和非監督學習
監督學習 監督學習就是分類,把人們已經處理好的訓練樣本 即已知資料和對應輸出 給計算機,計算機通過規律訓練出乙個最佳模型,再用這個模型對輸入的資料進行分類,得出對應的輸出。從而使計算機具有對未知資料進行分類的功能。特點 目標明確 需要帶標籤的訓練樣本 分類效果很容易評估 非監督學習 非監督學習沒有訓...
監督學習和無監督學習 監督學習與非監督學習
監督學習 supervised learning 的任務是學習乙個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出乙個好的 即 利用訓練資料集學習乙個模型,再用模型對測試樣本集進行 例如kaggle上的鐵達尼號比賽。官方提供旅客資料 資料集1 姓名,年齡,性別,社會經濟階層,是否生存等 要求參賽...