使用LinearRegression訓練時出現float() argument must be a string or a number, not 'pandas._libs.interval.Interval' 問題
您好~
我有幾個問題想請問您~
1. 若按照D12的方式來做出特徵(如某欄位做等寬劃分成10分),那是否可以帶入模型中訓練呢? 因為我用LinearRegression訓練時會出現問題:
float() argument must be a string or a number, not 'pandas._libs.interval.Interval'
目前不確定是程式有錯還是這個方法不可行..? 或者我該做什麼處理呢?
2.倘若上述方法可行,那等寬劃分後,若training set 和 testing set因為資料的不同所以兩者切出的東西有可能不同? 假設不同的話該如何處理呢...?
謝謝您~~
回答列表
-
2019/06/06 下午 00:09張維元 (WeiYuan)贊同數:3不贊同數:0留言數:0
1. 若按照D12的方式來做出特徵(如某欄位做等寬劃分成10分),那是否可以帶入模型中訓練呢? 因為我用LinearRegression訓練時會出現問題:
float() argument must be a string or a number, not 'pandas._libs.interval.Interval'
目前不確定是程式有錯還是這個方法不可行..? 或者我該做什麼處理呢?
=> 這邊先將資料些成 N 個寬度,再把資料轉成其中一個區間嗎?從錯誤上看起來是無法判斷型態,可能要幫區間命名一下。可以參考這邊的做法:https://stackoverflow.com/questions/45273731/binning-column-with-python-pandas
-
2019/06/06 下午 00:11張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
2.倘若上述方法可行,那等寬劃分後,若training set 和 testing set因為資料的不同所以兩者切出的東西有可能不同? 假設不同的話該如何處理呢...?
=> 有可能,不過因為我們通常要假設,training set 和 testing set 來自同一個資料分布,所以理論上這樣是有問題的。有幾種解法:(1) 只 Follow training 就好 (2) 偷用 training set + testing set 的集合來切。