1. 程式人生 > >sklearn中fit、fit_transform、transform的區別

sklearn中fit、fit_transform、transform的區別

1 前言

在使用sklearn處理資料的時候,會經常看到fit_tranform(),但是偶爾也會遇到fit()和transform()函式,不太明白怎麼使用,於是查詢資料整理一下。

2 理解

fit:原義指的是安裝、使適合的意思,其實有點train的含義但是和train不同的是,它並不是一個訓練的過程,而是一個適配的過程,過程都是定死的,最後只是得到了一個統一的轉換的規則模型。
transform:是將資料進行轉換,比如資料的歸一化和標準化,將測試資料按照訓練資料同樣的模型進行轉換,得到特徵向量。
fit_transform:可以看做是fit和transform的結合,如果訓練階段使用fit_transform,則在測試階段只需要對測試樣本進行transform就行了。
下面來看一下這兩個函式的API以及引數含義:
1、fit_transform()函式
在這裡插入圖片描述


即fit_transform()的作用就是先訓練,找到轉換資料的規則,然後根據找到的規則轉換資料。
2、transform()函式
在這裡插入圖片描述
即tranform()的作用是根據找到的規則對資料進行轉換。

3 小栗子

訓練階段:

corpus = _readbunchobj(wordbag_path).contents
tf_vectorizer = CountVectorizer(max_df=0.95,min_df=2,stop_words=stpwrdlst)
tf = tf_vectorizer.fit_transform(corpus)

測試階段:

contents = _readfile(
file_name) tf = tf_vectorizer.transform([contents])

參考文章

  1. NLP:sklearn中fit、fit_transform、transform的區別
  2. Python: sklearn庫中資料預處理函式fit_transform()和transform()的區別