python 机器学习_基于 Python 语言的机器学习工具Sklearn
本篇介紹了Sklearn機器學習基礎,從Sklearn的簡介,模塊以及與tensorflow的優劣勢對比來了解基于Python語言的機器學習工具。
???01、Sklearn簡介
sklearn(scikit-learn)是Python重要的學習庫,它封裝了機器學習中常用的算法,包括監督學習、非監督學習等,包括分類、回歸、降維和聚類四大機器學習算法,還包含特征提取、數據處理和模型評估三大模塊。sklearn建立在NumPy和matplotlib庫的基礎上。利用這幾大模塊的優勢,可以大大提高機器學習的效率。sklearn擁有著完善的文檔,上手容易,具有著豐富的API,在學術界頗受歡迎。sklearn已經封裝了大量的機器學習算法,可以簡單高效的數據挖掘和數據分析。sklearn可供大家使用,可在各種環境中重復使用。sklearn開放源碼,可商業使用 - BSD license。這樣,就給了我們無限的想像。sklearn工具功能強大,我們可以從這些方法中挑選適合自己的,去解決自己的問題。???02、Sklearn中常用模塊
sklearn中常用的模塊有分類、回歸、聚類、降維、模型選擇、預處理。具體介紹下圖所示:分類 (Classification)
from sklearn import Some Classifier
from sklearn.linear_model import Some Classifier
from sklearn.ensemble import Some Classifier
回歸 (Regression)
from sklearn import Some Regressor
from sklearn.linear_model import Some Regressor
from sklearn.ensemble import Some Regressor
聚類 (Clustering)
from sklearn.cluster import Some Model
降維 (Dimensionality Reduction)
from sklearn.decomposition import Some Model
模型選擇 (Model Selection)
from sklearn.model_selection import Some Model
預處理 (Preprocessing)
from sklearn.preprocessing import Some Model
???03、sklearn與tensorflow優劣勢
這兩個有什么區別,我想,可以從以下這方面來做對比:
1、面對項目的不同,sklearn更適合中小型,特別是數據量不大的項目,此時更需要手動者對數據進行處理,并且選擇合適模型的項目,這些計算是可以在CPU直接計算的,沒有什么硬件要求。相對的,tf的應用領域上,往往更加注重數據量較大,一般情況下需要GPU進行加速運算。目前很多公司并沒有很大量的數據,在選擇上,可以作為參考。
2、易用性及封裝度上,sklearn更高,這點上,我想很多用過的人都清楚,不做累贅描述。
3、sklearn主要定位是一種通用的機器學習的學習庫,tf主要定位還是深度學習。
4、特征工程上,sklearn提供了例如維度壓縮、特征選擇等,但是這樣子并不代表這tf就比sklearn弱。在傳統的機器學習中,sklearn需要使用者自行對數據進行數據處理,例如進行特征選擇,維度壓縮,轉換格式等,但是tf可以在開始進行數據訓練的過程中,自行從數據中提取有效的特征,從而減少人為的干預。
機器學習的基本方法為:獲取數據 -> 數據預處理 -> 訓練建模 -> 模型評估 -> 預測(分類)。???1、獲取數據與數據預處理
scikit-learn提供了一些標準數據集,例如用于分類的iris和digits數據集和波士頓房價回歸數據集。在下文中,我們從我們的shell啟動一個Python解釋器,然后加載iris和digits數據集。使用的工具是jupyter,單步調試利器,建議大家練習時優先考慮該工具。數據集形式根據問題實際情況,有不同的形式,比如文本挖掘常用.txt格式數據集,圖像處理常用.png,分類常用數字。是一個類似字典的對象,它保存有關數據的所有數據和一些元數據。該數據存儲在 .data 成員中,它是n_samples, n_features數組。在監督問題的情況下,一個或多個響應變量存儲在 .target 成員中。例如,在數字數據集的情況下,digits.data 使我們能夠得到一些用于分類的樣本特征,
而數據的標簽(digits.target )表示了數據集內每個數字的真實類別,也就是我們期望從每個手寫數字圖像中學得的相應的數字標記。
???2、訓練模型
在數字數據集的情況下,任務是給出圖像來預測其表示的數字。我們給出了10個可能類(數字 0 到 9)中的每一個的樣本,我們在這些類上擬合一個估計器,以便能夠預測未知的樣本所屬的類。
在scikit-learn中,分類的估計器是一個Python 對象,它實現了fit(X, y)和predict(T) 等方法。
估計器的一個例子類sklearn.svm.SVC ,實現了支持向量分類。估計器的構造函數以相應模型的參數為參數,但目前我們將把估計器視為黑箱即可;
??3、模型預測與評估通過數據和模型,下面要做的就是使用模型來處理數據。
在下面的代碼中,我們把我們的估計器實例命名為clf ,因為它是一個分類器(classifier)。它現在必須擬合模型,也就是說,它必須從模型中 learn(學習)。這是通過將我們的訓練集傳遞給fit方法來完成的。作為一個訓練集,讓我們使用數據集中除最后一張以外的所有圖像。我們用 [:-1] ,這個Python 語法選擇這個訓練集,它產生一個包含 digits.data 中除最后一個條目(entry)之外的所有條目的新數組。
由此可看出,模型的最終參數是有多個參數共同確定,但實際情況往往只關注只要參數,也就是,控制變量法,因為,機器學習學習是一個逼近全局最優過程,性能沒有最好,只有更好,所以為節省訓練時間,多關注主要參數。
???4、預測現在你可以預測新的值,特別是我們可以向分類器詢問 digits 數據集中最后一個圖像(沒有用來訓練的一條實例)的數字是什么。
轉載|職坐標
END
往期精選
用python寫個簡單但實用的人臉識別系統
python如何實現可視化熱力圖
使用pandas做數據可視化
整理了25個Pandas實用技巧
Python 四大數據類型總結
關注雷課????????
學習干貨???
總結
以上是生活随笔為你收集整理的python 机器学习_基于 Python 语言的机器学习工具Sklearn的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 引用和指针的区别都有什么_C++指针与引
- 下一篇: python字符串转化为数字-pytho