簡介Scikit-learn 機器學習

文章推薦指數: 80 %
投票人數:10人

對於初學者,最建議的方式是直接下載Anaconda Python (https://www.continuum.io/downloads)。

同時支援 Windows / OSX/ Linux 等作業系統。

相關數據分析套件如Scipy, Numpy ... machine-learningSearch…機器學習:使用Python簡介Scikit-learn機器學習分類法Classification特徵選擇FeatureSelection互分解CrossDecomposition通用範例GeneralExamples群聚法Clustering支持向量機機器學習資料集Datasets應用範例Application類神經網路Neural_Networks決策樹Decision_trees機器學習:使用NVIDIAJetsonTX2廣義線性模型GeneralizedLinearModels模型選擇ModelSelection半監督式分類法Semi-SupervisedClassificationEnsemble_methodsMiscellaneous_examplesNearest_NeighborsPoweredByGitBook簡介Scikit-learn機器學習Scikit-learn套件的安裝目前Scikit-learn同時支援Python2及3,安裝的方式也非常多種。

對於初學者,最建議的方式是直接下載AnacondaPython(https://www.continuum.io/downloads)。

同時支援Windows/OSX/Linux等作業系統。

相關數據分析套件如Scipy,Numpy,及圖形繪製庫matplotlib,bokeh會同時安裝。

開發介面及環境筆者目前最常用的開發介面為IPythonNotebook(3.0版後已改名為JupyterNotebook)以及Atom.io文字編輯器。

在安裝Anaconda啟用IPythonNotebook介面後,本文件連結之程式碼皆能夠以複製貼上的方式執行測試。

目前部份章節也附有notebook格式文件.ipynb檔可借下載。

給機器學習的初學者本文件的目的並非探討機器學習的各項理論,我們將以應用範例著手來幫助學習。

其中建議以手寫數字辨識來當成的敲門磚。

而本文件中,有以下範例介紹手寫數字辨識,並且藉由這個應用來探討機器學習中的一個重要類別「監督式學習」。

一開始,建議先從機器學習資料集Datasets,來了解資料集的型態以及取得方式。

接下來最重要的是釐清特徵X以及預測目標y之間的關係。

要注意這邊的大寫的X通常代表一個矩陣,每一列代表一筆資料,而每一行則代表其特徵。

例如手寫數字辨識是利用8x8的影像資料,來當成訓練集。

而其中一種特徵的取用方法是例用這64個像素的灰階值來當成特徵。

而小寫的y則代表一個向量,這個向量紀錄著前述訓練資料對應的「答案」。

了解資料集之後,接下來則建議先嘗試分類法範例一例用最簡單的支持向量機(SupportVectorMachine)分類法來達成多目標分類(Multi-classclassification),這裏的「多目標」指的是0到9的數字,該範例利用Scikit-learn內建的SVM分類器,來找出十個目標的分類公式,並介紹如何評估分類法的準確度,以及一些常見的分類指標。

例如以下報表標示著對於10個數字的預測準確度。

有了對這個範例的初步認識之後,讀者應該開始感覺到監督式學習(Supervisedlearning)的意義,這裏「監督」的意思是,我們已經知道資料所對應的預測目標,也就是利用圖形可猜出數字。

也就是訓練集中有y。

而另一大類別「非監督式學習」則是我們一開始並不知道y,我們想透過演算法來將y找出來。

例如透過購買行為及個人資料來分類消費族群。

1precisionrecallf1-scoresupport2​301.000.990.9988410.990.970.9891520.990.990.9986630.980.870.9291740.990.960.9792850.950.970.9691960.990.990.99911070.960.990.97891180.941.000.97881290.930.980.959213​14avg/total0.970.970.97899Copied!而有了基本的分類法,接下來的範例則是利用特徵選擇來更增進分類的準確性。

以手寫數字辨識來說。

上述的例子共使用了64個像素來當成特徵,然而以常理來判斷。

這64個像素中,處於影像邊緣的像素參考價值應該不高,因為手寫的筆畫鮮少出現在該處。

若能將這些特徵資料排除在分類公式中,通常能再增進預測的準確度。

而「特徵選擇」的這項技術,主要就是用來處理這類問題。

特徵選擇範例二:RecursiveFeatureElimination則是利用了Scikit-learn內建的特徵消去法,來找出消去那些特徵能夠最佳化預測的準確度。

而特徵選擇範例三:RecursiveFeatureEliminationwithCross-Validation則使用了更進階的交叉驗證法來切分訓練集以及挑戰集來評估準確程度。

建議讀者可以嘗試這幾個範例,一步步去深入機器學習的核心。

Previous機器學習:使用PythonNext分類法ClassificationLastmodified3yragoCopylinkOutlineScikit-learn套件的安裝開發介面及環境給機器學習的初學者



請為這篇文章評分?