1. 程式人生 > 實用技巧 >1-機器學習-機器學習基礎

1-機器學習-機器學習基礎

sklearn的資料集

  • 資料集劃分
  • 資料集介面介紹

資料集劃分

  • 前提:機器學習就是從資料中自動分析獲得規律,並利用規律對未知資料進行預測。換句話說,我們的模型一定是要經過樣本資料對其進行訓練,才可以對未知資料進行預測的。
  • 問題:我們得到資料後,是否將資料全部用來訓練模型呢?
    • 當然不是!因為我們如果模型(資料的規律)都是從資料中得來的,那麼該模型的效能評估如何進行呢?還是基於對原先的資料進行預測嗎?可想不是的,如果模型對原先的資料進行預測,由於模型(資料的規律)本來就是從該資料中獲取的,所以預測的精度幾乎會是百分之百。所以想要評估模型的好壞,需要使用一組新資料對模型進行評估。
    • 因此我們需要將原先的樣本資料拆分成兩部分:
      • 訓練集:訓練模型
      • 測試集:評估模型
        • 不同型別的模型對應的評估方式是不一樣的
  • 資料集劃分的API
    • from sklearn.model_selection import train_test_split
    • train_test_split(x,y,test_size,random_state)引數介紹:
      • x:特徵
      • y:目標
      • test_size:測試集的比例
      • random_state:打亂的隨機種子
    • 返回值:訓練特徵,測試特徵,訓練目標,測試目標

資料集介面介紹

  • sklearn.datasets.load_*():獲取小規模的資料集
  • sklearn.datasets.fetch_*(data_home=None,subset):獲取大規模的資料集data_home表示資料集下載目錄,None為預設值表示的是家目錄/scikit_learn_data(自動建立該資料夾)下。需要從網路下載.subset為需要下載的資料集,可以為train,test,all
#方式1:獲取小規模的資料集
import sklearn.datasets as datasets
iris = datasets.load_iris()
#提取樣本資料
feature = iris['data']
target = iris['target']


#切分樣本資料
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(feature,target,test_size=0.2,random_state=2020)

x_train,y_train 
#訓練集資料 x_test,y_test #測試集資料 #方式2:獲取較大規模的資料集 datasets.fetch_20newsgroups(data_home='資料集儲存路徑',subset='all')

機器學習基礎

  • 機器學習演算法分類
  • 機器學習開發流程
  • 事前需要明確的幾點:
    • 機器學習最終進行預測出來的結果其實都是通過相關的演算法計算出來的結果!所以說在機器學習中演算法是核心,資料是計算的基礎。
    • 找準定位:大部分複雜模型的演算法設計都是演算法工程師(博士,碩士)在做,而我們只需要:
      • 學會分析問題,使用機器學習相關演算法完成對應的需求
      • 掌握演算法的基本思想,學會對不同問題選擇對應的演算法去解決
      • 學會利用框架和庫解決問題

機器學習中的資料型別

  • 觀察下圖中的兩組資料的不同

    

  • 機器學習中的資料型別分為:
    • 離散型資料:
      • 離散變數則是通過計數方式取得的,即是對所要統計的物件進行計數,增長量非固定的,如:一個地區的企業數目可以是今年只有一家,而第二年開了十家;一個企業的職工人數今年只有10人,第二年一次招聘了20人等。
    • 連續型資料:
      • 連續變數是一直疊加上去的,增長量可以劃分為固定的單位,即:1,2,3…… 例如:一個人的身高,他首先長到1.51,然後才能長到1.52,1.53……。
    • 注意:
      • 連續型資料的增長是有規律的,離散型資料的增長是沒有規律的。
      • 連續性資料是區間可分的,而離散型資料是區間不可分的。

機器學習演算法分類

  • 分類和迴歸問題
    • 分類演算法基於的是【標籤資料】為【離散型】資料
    • 迴歸演算法基於的是【標籤資料】為【連續型】資料
    • 結論:在社會中產生的資料必然是離散型或者是連續型的資料,那麼企業針對資料所產生的需求也無非是分類問題或者回歸問題。
  • 分類問題應用:

    

  • 迴歸問題應用:

    

  • 測試:下屬問題的類別應該是什麼?
    • 預測電影的票房
    • 預測明天的晴天還是陰天
    • 人臉識別

機器學習開發流程

  • 1.資料採集
    • 公司內部產生的資料
    • 和其他公司合作獲取的資料
    • 購買的資料
  • 2.分析資料所對應要解決需求或者問題是什麼?根據目標資料推斷問題屬於迴歸還是分類!
  • 3.資料的基本處理
    • 資料清洗
    • 合併
    • 級聯等
  • 4.特徵工程:對特徵進行處理
    • 特徵抽取
    • 特徵預處理
    • 降維等
  • 5.選擇合適的模型,然後對其進行訓練
  • 6.模型的評估
  • 7.上線使用