scikit_learn中fit()/transform()/fit_transform()区别和联系
生活随笔
收集整理的這篇文章主要介紹了
scikit_learn中fit()/transform()/fit_transform()区别和联系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數功能解釋
fit()?
根據訓練集數據學習得到數據集的特征,比如均值、中位數、標準差等等
transform()
將fit()學到數據集特征,應用到數據集,比如學習到數據集平均數為6,應用到填充數據中的缺失值
fit_transform() = fit()+transform()
即將從數據集中學到的特征(均值、中位數、標準差)應用到數據集中
舉例
此處以使用均值填充缺失值舉例
>>> import numpy as np >>> from sklearn.impute import SimpleImputer# 學習方法(策略) >>> imp_mean = SimpleImputer(missing_values=np.nan, strategy='median') # 學習方法(策略)從下面數據集中進行學習 [[ 7. 2. 3.][ 4. nan 6.][10. 5. 9.]]>>> imp_mean_fit = imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]]) # 學習方法(策略)從實際數據中進行學習,學習到的第1/2/3列中位數 分別是7.0,3.5,6.0 >>> imp_mean_fit.statistics_ array([7. , 3.5, 6. ])# 將學習到的結果(第1/2/3列中位數 分別是7.0,3.5,6.0)應用到數據集X,原來的np.nan分別被中位數替換 >>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]] >>> print(imp_mean_fit.transform(X))[[ 7. 2. 3. ][ 4. 3.5 6. ][10. 3.5 9. ]]應用
fit()+transform() 以及 fit_transform()只能應用在訓練集,一般不能對測試集進行使用,測試集合一般用transfrom(),即只能將訓練集提取到特征應用到訓練集及測試集。原因是如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),雖然也能歸一化,但是兩個結果不是在同一個“標準”下的,具有明顯差異。
?
總結
以上是生活随笔為你收集整理的scikit_learn中fit()/transform()/fit_transform()区别和联系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国机器人峰会定档5月23日 潘云鹤等院
- 下一篇: 机器学习-线性回归(Linear Reg