Python與機器學習
1 什麼是機器學習
機器學習(Machine Learning,ML)是一門多領域的交叉學科,涉及概率論、統計學、線性代數、演算法等多門學科。它專門研究計算機如何模擬和學習人的行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷完善自身的性能。
機器學習已經有了十分廣泛的應用,例如:數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人運用。
機器學習的演算法分為兩大類:監督學習和無監督學習。
監督學習即在機器學習過程中提供對錯指示。一般是在數據組中包含最終結果(,1),通過演算法讓機器自己減少誤差。這一類學習主要應用於分類和預測(Regression& Classify)。監督學習從給定的訓練數據集中學習出一個目標函數,當新的數據到來時,可以根據這個函數預測結果。監督學習的訓練集要求包括輸入和輸出,也可以說包括特徵和目標,訓練集中的目標是由人標註的。常見的監督學習演算法包括回歸分析和統計分類。
非監督學習又稱歸納性學習(Clustering),利用K方式(KMean)建立中心 (Centriole),通過循環和遞減運算(Iteration&Descent)來減小誤差,達到分類的目的。
2 Python中的機器學習
學習機器學習主要關注監督學習中的分類與回歸問題處理的預測模型,這是在工業中應用非常廣泛的分類,也是scikit-learn擅長的一個領域。與統計學不同,機器學習的預測模型是用來理解數據、解決問題的;聚焦於如何創建一個更加精準的模型,而不是用來解釋模型是如何設置的。與大部分機器學習的領域不同的是,預測模型是使用表格格式的數據作為模型的輸入的,因此數據的採集和整理是很重要的工作。
應圍繞以下三部分來學習機器學習。
學習在項目中如何將機器學習的任務和Python有機地結合在一起,以便實現每一個機器學習問題的最佳實踐。
通過實例來理解學到的預測模型的知識。
學到一系列方法,只是進行簡單的複製粘貼操作就可以啟動一個新的機器學習項目。
最好通過項目來學習基於Python的生態環境如何完成機器學習的相關工作。一旦明白了如何使用Python平台來完成機器學習的任務,就可以在不同的項目中重複使用這種方法解決問題。利用機器學習的預測模型來解決問題共有六個基本步驟,如下圖所示。
定義問題:研究和提煉問題的特徵,以幫助我們更好地理解項目的目標。
數據理解:通過描述性統計和可視化來分析現有的數據。
數據準備:對數據進行格式化,以便於構建一個預測模型。
評估演算法:通過一定的方法分離一部分數據,用來評估演算法模型,並選取一部分代表數據進行分析,以改善模型。
優化模型:通過調參和集成演算法提升預測結果的準確度。
結果部署:完成模型,並執行模型來預測結果和展示。
3 學習機器學習的原則
學習機器學習是一段旅程。需要知道自己具備的技能、目前所掌握的知識,以及明確要達到的目標。要實現自己的目標需要付出時間和辛勤的工作,但是在目標的實現過程中,有很多工具可以幫助你快速達成目標。
創建半正式的工作產品。以博客文章、技術報告和代碼存儲的形式記下學習和發現的內容,快速地為自己和他人提供一系列可以展示的技能、知識及反思。
實時學習。不能僅在需要的時候才學習複雜的主題,例如,應該實時學習足夠的概率和線性代數的指示來幫助理解正在處理的演算法。在開始進入機器學習領域之前,不需要花費太多的時間來專門學習統計和數學方面的知識,而是要在平時進行實時學習,積累知識。
利用現有的Skills。如果可以編碼,那麼通過實現演算法來理解它們,而不是研究數學理論。使用自己熟悉的編程語言,讓自己專註於正在學習的一件事情上,不要同時學習一種新的語言、工具或類庫,這樣會使學習過程複雜化。
掌握是理想。掌握機器學習需要持續不斷的學習。也許你永遠不可能實現掌握機器學習的目標,只能持續不斷地學習和改進所掌握的知識。
TAG:機器學習 |