sklearn中fit、fit_transform、transform的區別
阿新 • • 發佈:2018-11-11
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])
參考文章