Day22範例程式中的特徵工程程式區塊疑問?MMEncoder.fit_transform(df[c].values.reshape(-1, 1))
想請問關於D22中的範例檔案中的特徵工程部分有一段(如圖)
其中df[c] = MMEncoder.fit_transform(df[c].values.reshape(-1, 1))這段為何要做reshape呢?
雖然如果不做reshape程式會發生錯誤會提示要做reshape(-1, 1),但仍不知道其中的問題所在。
因為我有嘗試把用print(df[c])去檢視每一次的資料看起來都是1維陣列(如圖)
所以不是很清楚為何需要做reshape?
另外想請教如果將df[c] = MMEncoder.fit_transform(df[c].values.reshape(-1, 1))
移動到迴圈之外直接用
df = pd.DataFrame(MMEncoder.fit_transform(df), index=df.index, columns=df.columns)
去直接做最大最小化(如圖),
這樣效果是否也是一樣的呢?
回答列表
-
2020/09/11 下午 11:40張維元 (WeiYuan)贊同數:2不贊同數:0留言數:7
嗨,第一個問題的話主要是因為 MMEncoder 主要是用於一維向量所以必須先調整形狀。
另外這個討論區為了方面後面的同學做搜尋還是會建議「一個問答一個重點」為主,你的第二個問題跟第一個問題我覺得不太一樣,會建議另外發文。
如果這個回答對你有幫助請主動點選「有幫助」或「最佳解答」的按鈕,也可以追蹤我的GITHUB 帳號。若還有問題的話,也歡迎再開一個新的問題繼續發問,或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃另外我目前有舉辦一個課程:【資料科學家的 12 堂心法課】或加入我自己的 Line 群組社群,歡迎一起來玩玩!(By the way,我並不是主辦單位的人員,所以如果覺得我回答得不好,不要找他們抱怨/客訴XD)