是簡單高效的數據挖掘和數據分析工具
可供大家在各種環境中重復使用
建立在 NumPy ,SciPy 和 matplotlib 上
開源,可商業使用 - BSD許可證
sklearn 可以實現數據預處理、分類、回歸、降維、模型選擇等常用的機器學習算法。 sklearn 是基於
NumPy:NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。。
SciPy :scipy是一個用於數學、科學、工程領域的常用軟件包,可以處理插值、積分、優化、圖像處理、常微分方程數值解的求解、信號處理等問題
matplotlib :Matplotlib 是 Python 的繪圖庫,僅需要幾行代碼,便可以生成直方圖、功率譜、條形圖、錯誤圖、散點圖等。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。
2、安裝 scikit-learn最新版本
Scikit-learn 要求:
Python (>= 2.7 or >= 3.3), NumPy (>= 1.8.2), SciPy (>= 0.13.3).
如果你已經有一個安全的 numpy 和 scipy,安裝 scikit-learn 最簡單的方法是使用 pip
:
pip install -U scikit-learn
_
pip
是一個Python包管理工具,主要是用於安裝 PyPI 上的軟件包。如果你安裝的Python 2 >=2.7.9 或者Python 3
=3.4 python自帶了
pip
,所以不用安裝。可以用pip list
命令查看安裝了哪些python包。 _
或者你是在Anaconda環境下,可以使用 conda
:
conda install scikit-learn
pip 升級和卸載操作僅適用於通過 pip install 安裝的軟件包;升級或卸載使用 Anaconda 安裝的 scikit- learn要用conda命令:
升級 scikit-learn:conda update scikit-learn 卸載 scikit-learn:conda remove scikit-learn
使用 pip install -U scikit-learn
升級 or pip uninstall scikit-learn
卸載 可能無法正確刪除 conda
命令安裝的文件
3、使用 scikit-learn 介紹機器學習
機器學習是什么?
一般來說,一個學習問題通常會考慮一系列 n 個 樣本 數據,然后嘗試預測未知數據的屬性。 如果每個樣本是 多個屬性的數據 (比如說是一個多維記錄),就說它有許多“屬性”,或稱 features(特征) 。
我們可以將學習問題分為以下幾大類:
有監督學習:其中數據帶有一個附加屬性,即我們想要預測的結果值
分類:樣本屬於兩個或更多個類,我們想從已經標記的數據中學習如何預測未標記數據的類別。 分類問題的一個例子是手寫數字識別,其目的是將每個輸入向量分配給有限數目的離散類別之一。 我們通常把分類視作監督學習的一個離散形式(區別於連續形式),從有限的類別中,給每個樣本貼上正確的標簽。
回歸:如果期望的輸出由一個或多個連續變量組成,則該任務稱為 回歸 。 回歸問題的一個例子是預測鮭魚的長度是其年齡和體重的函數。
無監督學習 :其中訓練數據由沒有任何相應目標值的一組輸入向量x組成。這種問題的目標可能是在數據中發現彼此類似的示例所聚成的組,這種問題稱為 聚類 , 或者,確定輸入空間內的數據分布,稱為 密度估計 ,又或從高維數據投影數據空間縮小到二維或三維以進行可視化
訓練集和測試集 機器學習是從數據的屬性中學習,並將它們應用到新數據的過程。 這就是為什么機器學習中評估算法的普遍實踐是把數據集分割成訓練集 (我們從中學習數據的屬性)和 測試集 (我們測試這些性質)。
我們來加載一個栗子數據集
scikit- learn自帶幾個標准數據集。例如,用於分類的iris和digits數據集,和用於回歸的波士頓房價數據集。下面,我們從cmd命令處理程序啟動python解釋器,練習加載iris和digits數據集。 python環境中的數據集是一個類似字典的對象,它保存有關數據的所有數據和一些元數據。 該數據存儲在 .data 成員中,它是 n_samples(樣本), n_features (特征)數組。 在監督問題的情況下,一個或多個響應變量存儲在 .target 成員中。 例如,在數字數據集的情況下,digits.data 使我們能夠得到一些用於分類的樣本特征:
並且 digits.target 表示了數據集內每個數字的真實類別,也就是我們期望從每個手寫數字圖像中學得的相應的數字標記:
數據數組的形狀 數據總是二維數組,形狀為 (n_samples, n_features) ,盡管原始數據可能具有不同的形狀。 在數字的情況下,每個原始樣本是形狀 (8, 8) 的圖像,可以使用以下方式訪問:
如何加載外部數據集? scikit-learn將任何數值型數據存儲為numpy數組或scipy稀疏矩陣。其它可以轉換為numpy數組的類型也可以。下面介紹幾種推薦的數據加載方式:
1、pandas.io提供了一組工具,利用它們讀取包括CSV, Excel, JSON, SQL等常見格式的數據集。pandas很適合處理不同類型的數據,並且能夠把這些數據轉為適合的數值數組。
2、scipy.io專門處理在科學計算中常用的二進制形式,例如,.mat, .arff
3、numpy/routines.io是列形數據進入numpy數組的標准加載形式。
4、scikit- learn的datasets.load_files函數作為文本文件的字典加載形式。在這種加載形式,每一個字典名是每一個類的名,而字典里的每一個文件則對應來自該類的一個樣本。
提示: 如果在管理自己的數值型數據時,我們推薦使用一個優化過的文件格式,例如, HDF5,
這樣可以減少數據加載時間。 當你加載的外部數據很大時,這種方式尤其有用。 不同的python庫,例如,H5Py, PyTables, pandas都提供讀寫HDF5格式的數據的接口。