1. 程式人生 > >scikit-learn機器學習常用算法原理及編程實戰(一)

scikit-learn機器學習常用算法原理及編程實戰(一)

sed 數據 super 結構化 得到 人工智 計算機程序 語音 數值

機器學習介紹

  • 機器學習的概念
  • 機器學習要解決的問題分類
  • 使用機器學習解決問題的一般性步驟

什麽是機器學習

  • 機器學習是一個計算機程序,針對某個特定的任務 ,從經驗中學習,並且越做越好。
  • 誰掌握的數據量大 、質量高,誰就占據了機器學習和人工智能領域最有利的資本。

    機器學習有什麽用

  • 語音識別、自然語言處理、人臉識別系統等等

    機器學習的分類

  • 有監督學習(Supervised learning)---通過大量已知的輸入和輸出相配對的數據,讓計算機從中學習出規律,從而能針對一個新的輸入做出合理的輸出預測。
    回歸學習(Regression learning):即輸出結果是一個具體的數值,它的預測模型是一個連續的函數。

    分類學習(Classfication learning):即輸出結果是離散的,即要麽輸出1表示是垃圾郵件,要麽輸出0表示不是垃圾郵件。
  • 無監督學習(Unsupervised learning)---通過學習大量的無標記的數據,去分析出數據本身的內在特點和結構。
    聚類(Clustering):是我們在分析數據之前其實是不知道有哪些類別的。聚類問題的答案是未知的,需要利用算法從數據裏挖掘出數據的特點和結構。
    兩種機器學習類別的最大區別是,有監督學習的訓練數據裏有己知的結果來“監督”;而無監督學習的訓練數據裏沒有結果“監督”,不知道到底能分析出什麽樣的結果。

    機器學習應用開發的典型步驟

    1. 數據采集和標記
  • 在數據采集階段,需要收集盡量多的特征。特征越全,數據越多,訓練出來的模型才會越準確。
  • 數據標記到有監督的學習方法是必須的。

    2. 數據清洗
  • 數據清洗包括單位統一、去掉重復的數據及噪聲數據、讓數據具備結構化特征,以方便作為機器學習算法的輸入。

    3. 特征選擇
  • 特征選擇的方法之一是人工選擇方法,即對逐個特征進行人員分析,然後選擇合適的特征集合。
  • 另外一個方法是通過模型來自動完成,如PCA算法 。

    4. 模型選擇
  • 選擇哪個模型,和問題領域、數據量大小、訓練時長、模型的準確度等多方面有關。

    5. 模型訓練和測試
  • 數據集分成訓練數據集和測試數據集。以確保測試的準確性,即模型的準確性是要用它“沒見過”的數據來測試,而不能用那些用來訓練這個模型的數據來測試。
  • 更合理的數據集劃分方案是分成3個,此外還要再加一個交叉驗證數據集。

    6. 模型性能評估和優化
  • 訓練時長
  • 數據集是否足夠多
  • 模型的準確性
  • 模型是否能滿足應用場景的性能要求

    7. 模型使用
  • 訓練出來的模型可以把參數保存起來,下次使用時直接加載即可。一般來講,模型訓練需要的計算量是很大的,也需要較長的時間來訓練,這是因為一個好的模型參數,需要對大型數據集進行訓練後才能得到。而真正使用模型時,其計算量是比較少的,一般是直接把新樣本作為輸入,然後調用模型即可得出預測結果。

scikit-learn機器學習常用算法原理及編程實戰(一)