1. 程式人生 > 實用技巧 >sklearn轉換器和估計器

sklearn轉換器和估計器

轉換器和估計器

1.1 轉換器

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

  • 1、例項化 (例項化的是一個轉換器類(Transformer))
  • 2、呼叫fit_transform(對於文件建立分類詞頻矩陣,不能同時呼叫)

我們把特徵工程的介面稱之為轉換器,其中轉換器呼叫有這麼幾種形式

  • fit_transform
  • fit
  • transform

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

In [1]: from sklearn.preprocessing import StandardScaler

In [2]: std1 = StandardScaler()

In [3]: a = [[1,2,3], [4,5,6]]

In [4]: std1.fit_transform(a)
Out[4]:
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])

In [5]: std2 = StandardScaler()

In [6]: std2.fit(a)
Out[6]: StandardScaler(copy=True, with_mean=True, with_std=True)

In [7]: std2.transform(a)
Out[7]:
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])

從中可以看出,fit_transform的作用相當於transform加上fit。但是為什麼還要提供單獨的fit呢, 我們還是使用原來的std2來進行標準化看看

In [8]: b = [[7,8,9], [10, 11, 12]]

In [9]: std2.transform(b)
Out[9]:
array([[3., 3., 3.],
       [5., 5., 5.]])

In [10]: std2.fit_transform(b)
Out[10]:
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])

1.2 估計器(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 聚類

1.3 估計器工作流程