我想用Sklearn的GradientBoostingRegressor類預測值的迴歸問題的目標變量推進。我擁有的功能是混合類型 - 一些是連續數字,一些是布爾型,兩種是分類型的,一種是連續數字的向量。我選擇漸變增強樹,因爲數據是混合數據類型。一個特徵向量的例子如下:梯度Sklearn
['Category1',41.93655,-87.642079,0,0,< 1x822'''稀疏矩陣類型'',其中4個存儲元素以壓縮稀疏行格式>,'mobile_app', 「NA」]
然而,當我嘗試訓練相契合的GradientBoostingRegressor(),我得到一個錯誤說:
ValueError異常:無法將字符串轉換爲float:組別
此功能的值用枚舉實現。我只是有一個方法:
def enum(self, **enums):
return type('Enum',(), enums)
後來,當我創建我的類別,我不喜歡這樣寫道:
categories = self.enum(Category1='Category1', Category2='Category2', ...)
我猜問題是,它仍然是返回的實際值作爲一個字符串。但是,如果我將值更改爲0,1,2等,這會使某些類別與其他類別「距離更近」,因爲它們應該與其他所有類別等距。
那麼這個對象實際上是混合類型的句柄數據還是這一切都必須做數值?如果必須是全部數字,那麼使用此對象處理分類數據的任何人都可以瞭解表示類別的最佳方式?任何幫助表示讚賞