改成 SimpleImputer之後還是error?
問題:因為sklearn好像有更新說要換成from sklearn.impute import SimpleImputer,但我改了之後還是error如下
請問老師一下要如何修改
code:
from sklearn.preprocessing import MinMaxScaler
from sklearn.impute import SimpleImputer
# 特徵欄位清單
train = app_train
features = list(train.columns)
# 複製 test 資料
test = app_test.copy()
# 填補器 : 設定缺失值補中位數
imputer = SimpleImputer(strategy = 'median')
# 縮放器 : 設定特徵縮放到 0~1 區間
scaler = MinMaxScaler(feature_range = (0, 1))
# 填補器載入個欄中位數
imputer.fit(train)
# 將中位數回填 train, test 資料中的空缺值
train = imputer.transform(train)
test = imputer.transform(app_test)
# 縮放器載入 train 的上下限, 對 train, test 進行縮放轉換
scaler.fit(train)
train = scaler.transform(train)
test = scaler.transform(test)
print('Training data shape: ', train.shape)
print('Testing data shape: ', test.shape)
回答列表
-
2020/07/23 下午 11:23張天恩贊同數:1不贊同數:0留言數:0
錯誤顯示你的資料裡面('Cash loans' 這個欄位)仍然含有類別型的資料,而類別型資料並沒有中位數(median)這個統計數據。可能需要檢查你前面特徵工程是否有正確的跑完。
-
2020/07/27 下午 08:52張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
這裡的錯誤訊息看起來不是 simpleInputer 造成的,是「 Cash loans」欄位的問題。意思是 Cash loans 的字串欄位無法計算中位數(median)。
如果這個回答對你有幫助請主動點選「有幫助」或「最佳解答」的按鈕,也可以追蹤我的GITHUB 帳號。若還有問題的話,也歡迎再開一個新的問題繼續發問(留言在原本的討論底下我可能不會回覆)或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃