在機器學習和資料探勘的應用中,scikit-learn是乙個功能強大的python包。在資料量不是過大的情況下,可以解決大部分問題。近期在學習使用scikit-learn的過程中,我自己也在補充著機器學習和資料探勘的知識。以下是我做乙個總結的筆記。後續會結合競賽實操。
常直接理解成分類器,主要包含兩個函式:
轉換器用於資料預處理和資料轉換,主要是三個方法:
sklearn.pipeline包
功能:
使用方法:
流水線的輸入為一連串的資料探勘步驟,其中最後一步必須是估計器,前幾步是轉換器。輸入的資料集經過轉換器的處理後,輸出的結果作為下一步的輸入。最後,用位於流水線最後一步的估計器對資料進行分類。
每一步都用元組( 『名稱』,步驟)來表示。現在來建立流水線。
scaling_pipeline = pipeline([
('scale', minmaxscaler()),
('predict', kneighborsclassifier())
])
主要在sklearn.preprcessing包下。
規範化:
編碼:
1.5.1 特徵抽取
包:sklearn.feature_extraction
特徵抽取是資料探勘任務最為重要的乙個環節,一般而言,它對最終結果的影響要高過資料探勘演算法本身。只有先把現實用特徵表示出來,才能借助資料探勘的力量找到問題的答案。特徵選擇的另乙個優點在於:降低真實世界的複雜度,模型比現實更容易操縱。
一般最常使用的特徵抽取技術都是高度針對具體領域的,對於特定的領域,如影象處理,在過去一段時間已經開發了各種特徵抽取的技術,但這些技術在其他領域的應用卻非常有限。
1.5.2 特徵選擇
包:sklearn.feature_selection
特徵選擇的原因如下:
(1)降低複雜度
(2)降低噪音
(3)增加模型可讀性
單個特徵和某一類別之間相關性的計算方法有很多。最常用的有卡方檢驗(χ2)。其他方法還有互資訊和資訊熵。
包:sklearn.decomposition
包:**sklearn.ensemble **
組合技術即通過聚集多個分類器的**來提高分類準確率。
常用的組合分類器方法:
(1)通過處理訓練資料集。即通過某種抽樣分布,對原始資料進行再抽樣,得到多個訓練集。常用的方法有裝袋(bagging)和提公升(boosting)。
(2)通過處理輸入特徵。即通過選擇輸入特徵的子集形成每個訓練集。適用於有大量冗餘特徵的資料集。隨機森林(random forest)就是一種處理輸入特徵的組合方法。
(3)通過處理類標號。適用於多分類的情況,將類標號隨機劃分成兩個不相交的子集,再把問題變為二分類問題,重複構建多次模型,進行分類投票。
包:sklearn.metrics
sklearn.metrics包含評分方法、效能度量、成對度量和距離計算。
分類結果度量
引數大多是y_true和y_pred。
其中,f1是以每個類別為基礎進行定義的,包括兩個概念:準確率(precision)和召回率(recall)。準確率是指**結果屬於某一類的個體,實際屬於該類的比例。召回率是被正確**為某類的個體,與資料集中該類個體總數的比例。f1是準確率和召回率的調和平均數。
回歸結果度量
多標籤的度量
聚類的度量
包:sklearn.cross_validation
ifname== 『main』:
show_cross_val(「lpo」)
常用方法
包:sklearn.grid_search
網格搜尋最佳引數
包:sklearn.multiclass
最後奉獻sklearn處理資料流程圖一張:
Scikit Learn 使用技巧
1.使用 columntransformer 對 dataframe 不同的列分別進行不同的處理from sklearn.preprocessing import onehotencoder from sklearn.impute import imputer from sklearn.compos...
scikit learn中PCA的使用方法
原博文 blog 在前一篇文章 主成分分析 pca 中,我基於python和numpy實現了pca演算法,主要是為了加深對演算法的理解,演算法的實現很粗糙,實際應用中我們一般呼叫成熟的包,本文就結束scikit learn中pca使用的方法和需要注意的細節,參考 sklearn.decomposit...
scikit learn 使用指南
一般來說,機器學習問題可以這樣來理解 我們有n個 樣本 sample 的資料集,想要 未知資料的屬性。如果描述每個樣本的數字不只乙個,比如乙個多維的條目 也叫做 多變數資料 multivariate data 那麼這個樣本就有多個屬性或者 特徵 我們可以將學習問題分為以下幾類 scikit lear...