使用sklearn評估器構建聚類模型

2021-01-07 百度校園

作者:徐瑤佳 來源:人工智慧學習圈

工作內容:

聚類算法是在沒有給定劃分類別的情況下,根據數據樣本的相似度進行樣本分組的一種算法。聚類算法過程是無監督的,聚類模型可以將沒有類標記的數據集聚集為多個簇,歸為一類。常用在市場分析人員對消費者在資料庫中的具體情況分類成不同的消費群體,從而評估出不同類消費人群的一個消費模式和消費習慣。聚類算法在數據分析算法中也可以作為其預處理步驟,例如異常值識別。

工作目標:

a.使用sklearn估計器構建K-Means聚類模型

b.根據聚類模型評價指標對K-Means聚類模型進行評價

6.2.1 構建聚類模型的邏輯與說明

首先在處理數據的過程中我們先對我們的輸入內容進行考慮,即聚類輸入為一組未被進行標記的數據樣本,聚類通過不同數據之間的距離和相似度將這些數據樣本進行劃分,被劃分成若干組的數據根據樣本內部距離最小化,外部距離最大化的原則進行劃分,可理解成不同維度與同一維度下數據的距離。

常用的聚類算法如下:

sklearn常用的聚類算法模塊cluster提供的聚類算法及其適用範圍如下:

聚類算法實現實現需要Estimator,其具備fit和predict兩種方法,方法說明如下:

兩個方法的步驟與Transformer數據預處理的過程相似,下面使用鳶尾花數據,通過sklearn估計器對其構建K-Means聚類模型,步驟如下:

首先讀入數據:

iris=load_iris()irisData=iris.datairisTarget=iris.targetirisNames=iris.feature_names

得到數據樣本後生成規則:

Scaler=MinMaxScaler().fit(irisData)

應用Scaler:

irisDataScaler=Scaler.transform(irisData)

構建模型後訓練模型:即先構建KMeans模型後,利用fit方法將生成的數據規則樣本傳入訓練模型,輸出模型進行查看檢驗

kmeans=KMeans(n_clusters=3,random_state=23).fit(irisDataScaler)

print("the model:\n",kmeans)

輸出結果如下:

接下來進行對測試集標籤的預測:

rs=kmeans.predict([[2,2,2,2]])

print(rs[0])

輸出結果為:2

代碼如下:

聚類完成後為直觀的看出我們聚類後的效果,可以通過sklearn的manifold模塊中TSNE函數實現多維數據的可視化展現。

代碼如下:

可視化圖片如下:

我們可以發現本次聚類三類類別分布較為均勻,類與類之間界限明顯,聚類效果好

相關焦點

  • 使用python+sklearn實現估計器的調參方法
    具體來說,要查找給定估計器的所有參數的名稱和當前值,請使用:估計器(回歸器或分類器,如sklearn.svm.SVC());一些模型允許使用專門的、有效的參數搜索策略,如下所述。scikit-learn中提供了兩種通用的採樣搜索候選值方法:對於給定的值,GridSearchCV 詳盡地考慮所有參數組合,而RandomizedSearchCV 可以從具有指定分布的參數空間中採樣給定數量的候選值。
  • 教你用Sklearn創建機器學習分類器模型!
    (可左右滑動窗口)labels = np.asarray(df.Species)我們現在可以停止操作,因為我們可以使用上面的標籤來訓練分類器,但是,由於物種值的數據類型不是數字,而是字符串,我們在評估模型時就會遇到問題。幸運的是,sklearn提供了一個漂亮的工具,可以將標籤字符串編碼為數字表示。
  • 使用python+sklearn實現度量和評分
    1. scoring 參數:定義模型評估準則模型選擇和評估使用工具,例如 model_selection.GridSearchCV和 model_selection.cross_val_score,接受一個scoring參數,該參數控制著估計器的評估過程中使用什麼樣的度量指標。1.1.
  • KNN算法(三)-sklearn實現
    sklearn數據集中的鳶尾花數據集來構建一個knn分類模型,並根據輸入的數據點來預測鳶尾花的類別。2.創建分類器使用KNeighborsClassifier創建分類器,不設置參數n_neighbors:from sklearn.neighbors import KNeighborsClassifierknn = KNeighborsClassifier()
  • 使用python+sklearn實現交叉驗證
    的數據用於測試(評估)我們的分類器:>>> X_train, X_test, y_train, y_test = train_test_split(...可以使用scoring參數更改此設置:>>> from sklearn import metrics>>> scores = cross_val_score(...
  • 聚類問題的 5 種評估手段,總有一種你不知道的!附代碼實現
    作者:xiaoyi來源:小一的學習筆記模型評估前面已經介紹了兩種,分別對應分類問題:分類問題的 8 種評估方法 和回歸問題:回歸問題的3個評估深坑。今天介紹最後一種:聚類模型。答:聚類模型的標準不是某種標籤輸出,根據特徵選取的不同聚類的結果也會發生變化,並沒有一個永遠標準的的答案。有樣本聚類標籤的評估 上面我們提到,無法評估聚類效果是因為沒有可供參考的真實結果,那如果有呢?
  • 如何用sklearn創建機器學習分類器?這裡有一份上手指南
    讀完這篇文章,你將學到:導入和轉換.csv文件,開啟sklearn之旅檢查數據集並選擇相關特徵用sklearn訓練不同的數據分類器分析結果,進一步改造模型第一步:導入數據找到合適的數據下載完成後,我們不難猜到,要做的第一件事肯定是加載並且檢查數據的結構。這裡我推薦大家使用Pandas。
  • Sklearn介紹
    這裡的設計,僅僅是為了供sklearn中的pipeline等API調用時,傳入該對象時,各API的方法能夠保持一致性,方便使用pipeline。構建特徵選擇實例的基本分類器。如果參數prefit為True,則該參數可以由一個已經訓練過的分類器初始化。如果prefit為False,則該參數只能傳入沒有經過訓練的分類器實例threshold:字符串,浮點數,(可選的)默認為None。該參數指定特徵選擇的閾值,詞語在分類模型中對應的係數值大於該值時被保留,否則被移除。
  • sklearn入門教程:監督學習流程與線性分類器
    為了展現其廣泛的應用環境,對於每一種分類學習模型,我會整理一系列文章,使用不同的任務以及數據樣例進行說明。 首先我們先看一下線性分類器的原理和代碼。線性分類器(Linear Classifiers),是一種假設特徵與分類結果存在線性關係的模型。
  • sklearn子框架系列之一:上篇---sklearn數據前處理
    包流水線的功能:跟蹤記錄各步驟的操作(以方便地重現實驗結果)對各步驟進行一個封裝確保代碼的複雜程度不至於超出掌控範圍基本使用方法流水線的輸入為一連串的數據挖掘步驟,其中最後一步必須是評估器,前幾步是轉換器。
  • 使用 Auto-sklearn 開啟自動機器學習之旅
    2回歸問題以下示例展示了如何使用 Auto-sklearn 來擬合簡單的回歸模型。5時間和內存限制auto-sklearn的一個關鍵功能是限制允許scikit-learn算法使用的資源(內存和時間)。特別是對於大型數據集(算法可能需要花費幾個小時並進行機器交換),重要的是要在一段時間後停止評估,以便在合理的時間內取得進展。因此,設置資源限制是優化時間和可以測試的模型數量之間的權衡。
  • 深度學習多種模型評估指標介紹 - 附sklearn實現
    from sklearn.metrics import accuracy_scorey_true = [2, 1, 0, 1, 2, 0]y_pred = [2, 0, 0, 1, 2, 1]accuracy_score(y_true, y_pred)   在介紹下面的評估指標時,先明白以下概念,在多類分類問題中
  • 如何使用 Keras 實現無監督聚類
    metrics.acc(y, y_pred_kmeans)評估得到 K-Means 聚類算法的準確度在 53.2%。後面我們會將它與深度嵌入聚類模型進行比較。在找原始碼嗎?到我的 Github 上看看。前訓練自動編碼器自動編碼器是一個數據壓縮算法。它由編碼器和解碼器兩個主要部分構成。
  • 使用sklearn做自然語言處理-2
    之前我們已經分享了一篇《用sklearn做自然語言處理-1》,今天我們繼續將sklearn一些高級用法。今天我們使用yelp網站評論數據集做一些探索,除了上一篇文章中用到的特徵抽取知識,本文還會有。4 Pipelinepipeline要由多個transformer(起到數據準備),其中最後一個構建一定要由estimator(起到模型訓練作用)。大家可能還是有點迷糊,我拿消費者開車會使用汽油,消費者使用汽油是最後一個步驟,而在此之前的對石油的開採運輸煉化是transformer。
  • 使用python+sklearn實現在鳶尾花數據集上繪製集成樹的決策面
    下圖比較了決策樹分類器(第一列),隨機森林分類器(第二列),極端樹(extra- trees)分類器(第三列)和AdaBoost分類器(第四列)學習到的決策面。在第一行中,僅使用間隔寬度和間隔長度的特徵來構建分類器,在第二行中僅使用花瓣長度和間隔長度的特徵來構建分類器,在第三行中僅使用花瓣寬度和花瓣長度的特徵來構建分類器。
  • 使用python+sklearn實現使用完全隨機樹進行哈希特徵轉換
    在高維空間中,線性分類器通常表現很好。對於稀疏的二分類數據,BernoulliNB特別適合。下圖中最下面一行對BernoulliNB在變換後的空間中學到的決策邊界與ExtraTreesClassifier森林在原始數據中學到的決策邊界進行比較。
  • 使用python+sklearn實現單變量特徵選擇
    import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import MinMaxScalerfrom sklearn.svm import LinearSVCfrom sklearn.pipeline import make_pipeline
  • 基於 Python 語言的機器學習工具Sklearn
    01、Sklearn簡介sklearn(scikit-learn)是Python重要的學習庫,它封裝了機器學習中常用的算法,包括監督學習、非監督學習等,包括分類、回歸、降維和聚類四大機器學習算法,還包含特徵提取、數據處理和模型評估三大模塊。
  • 技術乾貨 | Sklearn機器學習基礎
    scikit-learn簡稱sklearn,支持包括分類、回歸、降維和聚類四大機器學習算法。還包含了特徵提取、數據處理和模型評估三大模塊。sklearn是Scipy的擴展,建立在NumPy和matplotlib庫的基礎上。利用這幾大模塊的優勢,可以大大提高機器學習的效率。