1. 程式人生 > >機器學習實踐(六)—sklearn之轉換器和估計器

機器學習實踐(六)—sklearn之轉換器和估計器

一、sklearn轉換器

  • 想一下之前做的特徵工程的步驟?

    • 1 例項化 (例項化的是一個轉換器類(Transformer))
    • 2 呼叫fit_transform(對於文件建立分類詞頻矩陣,不能同時呼叫)
  • 我們把特徵工程的介面稱之為轉換器,其中轉換器呼叫有這麼幾種形式

    • fit_transform
    • fit
    • transform

    這幾個方法之間的區別是什麼呢?我們看以下程式碼就清楚了

  • 示例程式碼

    from sklearn.preprocessing import
    StandardScaler # 建立一個標準差轉換器 transfer = StandardScaler() a = [[1,2,3],[4,5,6]] # 進行計算均值和標準差,並進行轉換,計算均值和標準差的結果會儲存在transfer物件中,之後用到均值或標準差都會從物件中直接提取,如果重新計算會重新儲存。 transfer.fit_transform(a) # 進行均值和標準差的計算,儲存在transfer物件中, transfer.fit(a) # 進行轉換 transfer.transform(a)

二、sklearn估計器

在sklearn中,估計器(estimator)是機器學習演算法的API,是進行機器學習的面向物件,它的內部能夠像轉換器那樣自動地儲存一些運算結果。

  • 列舉一些估計器

    • 1 用於分類的估計器:
      • sklearn.neighbors k-近鄰演算法
      • sklearn.naive_bayes 貝葉斯
      • sklearn.linear_model.LogisticRegression 邏輯迴歸
      • sklearn.tree 決策樹與隨機森林
    • 2 用於迴歸的估計器:
      • sklearn.linear_model.LinearRegression 線性迴歸
      • sklearn.linear_model.Ridge 嶺迴歸
    • 3 用於無監督學習的估計器
      • sklearn.cluster.KMeans 聚類
  • 估計器工作流程

    • 例項化一個估計器

      estimator = LNeighborsClassifier()
      
    • 傳入訓練資料集,進行機器訓練

      estimator.fit(x_train,y_train)
      
    • 模型評估

      • 方法1. 比較真實值與預測值

        y_predict = estimator.predict(x_test)
        y_predict == y_test
        
      • 方法2. 計算模型準確率

        estimator.score(x_test,y_test)