scikti-learn學習

<span style="color: rgb(54, 46, 43); font-family: 'microsoft yahei'; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">自2007年發佈以來,scikit-learn已經成爲最給力的Python機器學習庫(library)了。scikit-learn支持的機器學習算法包括分類,迴歸,降維和聚類。還有一些特徵提取(extracting features)、數據處理(processing data)和模型評估(evaluating models)的模塊。作爲Scipy庫的擴展,scikit-learn也是建立在Python的NumPy和matplotlib庫基礎之上。NumPy可以讓Python支持大量多維矩陣數據的高效操作,matplotlib提供了可視化工具,SciPy帶有許多科學計算的模型。 </span>

    scikit-learn文檔完善,容易上手,豐富的API,使其在學術界頗受歡迎。開發者用scikit-learn實驗不同的算法,只要幾行代碼就可以搞定。scikit-learn包括許多知名的機器學習算法的實現,包括LIBSVM和LIBLINEAR。還封裝了其他的Python庫,如自然語言處理的NLTK庫。另外,scikit-learn內置了大量數據集,允許開發者集中於算法設計,節省獲取和整理數據集的時間。 
    scikit-learn可以不受任何限制,遵從自由的BSD授權。許多scikit-learn的算法都可以快速執行而且可擴展,除了海量數據集以外。最後,scikit-learn穩定性很好,大部分代碼都可以通過Python的自動化測試(mock,nose等)。

scikit-learn文檔完善,容易上手,豐富的API,使其在學術界頗受歡迎。開發者用scikit-learn實驗不同的算法,只要幾行代碼就可以搞定。scikit-learn包括許多知名的機器學習算法的實現,包括LIBSVM和LIBLINEAR。還封裝了其他的Python庫,如自然語言處理的NLTK庫。另外,scikit-learn內置了大量數據集,允許開發者集中於算法設計,節省獲取和整理數據集的時間。 

    scikit-learn可以不受任何限制,遵從自由的BSD授權。許多scikit-learn可以快速執行而且可擴展,除了海量數據集以外。最後,scikit-learn穩定性很好。

Mac OS上建議安裝Anaconda,裏面集成了scikit-learn、numpy、matplot、scipy等等做科學計算必須的東西。

可以通過sklearn.__version__來查看當前sklearn的版本信息。下圖是我安裝後的截圖。

      

通常,給定樣本數據集,然後嘗試預測未知數據的屬性,如果每個樣本超過單個數值,例如,一組多維的輸入值,就稱其有多個屬性或特徵。 
我們可以將學習問題分爲幾大類: 
監督學習:監督學習是對具有概念標記(分類)的訓練樣本進行學習,以儘可能對訓練樣本集外的數據進行標記(分類)預測。這裏,所有的標記(分類)是已知的。 
其還可以在分: 
     –分類:樣本數據屬於兩類或者多類,我們想要從帶類別標記的數據中學習,並預測未知數據的類別。一個分類問題的例子就是手寫數字識別的例子。 
     –迴歸:如果輸出數據時由一系列連續的變量組成,我們稱這個任務爲迴歸。迴歸問題的一個例子是根據鮭魚的年齡和重量來預測鮭魚的長度。 
非監督學習:對沒有概念標記(分類)的訓練樣本進行學習,以發現訓練樣本集中的結構性知識。這裏,所有的標記(分類)是未知的。這種問題的目標是發現數據樣本聚集的相似性,那就稱其爲聚類;或在輸入空間內決定數據的分佈,其就是密度估計;或是將高維的數據降維到二維或者三維,以便進行數據可視化。

*訓練集、測試集、驗證集* 
訓練集:訓練集是用來學習的樣本集,通過匹配一些參數來建立一個模型(如:分類器) 
測試集:測試集純粹是爲了測試已經訓練好的模型的分類能力的樣本集。 
驗證集:驗證集是用來調整分類器的參數的樣本集,比如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型複雜程度的參數。

scikit-learn本身內置了一些標準的數據集,例如:鳶尾花和數字數據集用於分類,還有波士頓房屋價格數據集用來做迴歸。 
接下來用Python 語言來實現加載這些數據集(iris和digits)

>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()

學習和預測

在數字數據集中,我們的任務是給定一張數字圖片,然後預測對應的數字。 
在scikit-learn中,我們通過fit(X, y)來訓練模型,predict(T)來預測未知樣本的類別。

>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)

通過對scikit-learn的簡單瞭解、安裝以及簡單示例的練習。理論+實踐+持之以恆的學習就可以掌握機器學習相關的知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章