machine-learning - 如何使用 lightgbm 和 xgboost 框架处理投票分类器中的 'object' dtypes 变量?
问题描述
我正在使用带有两个分类器(lightgbm 和 xgboost)的 sklearn 投票分类器。只要输入数据仅包含数字信息(float 和 int dtype),一切都可以正常工作。但是,只要将 'object' 或 'category' dtypes 变量添加到数据中,它就会引发错误。这是逻辑,因为 lightgbm 框架可以处理“类别”变量,而 xgboost 框架不能。
我想要的是在投票分类器中将两个分类器拟合到相同但本质上已转换的数据上:
对于 xgboost 算法,我想将所有“对象”或“类别”数据转换为虚拟数据。(pd.get_dummies())
对于 lightgbm 算法,我想将所有“对象”数据转换为“类别”类型。
代码:
from sklearn.ensemble import VotingClassifier
clf = VotingClassifier(estimators = [('xgb', clf_xgb),
('lgb', clf_lgb)], voting = 'soft')
clf.fit(train[variables],train[target])
解决方案
推荐阅读
- iptables - iptables 伪装在 Debian VM 上不起作用
- javascript - 突出显示最小/最大值表jquery
- cordova - 尝试在 Android 设备上运行 Geolocation 时如何解决 Babel 问题?
- java - ltree postgres type using spring data jpa -- 在 postgres 中定义函数和强制转换后出现语法错误
- python - Python - 仅从文本文件中读取最后一行
- python - 索引 0 处的无效数组元素:需要 datetime.date 或 datetime.datetime 实例,得到 'int' asyncpg
- alpacajs - 羊驼 - 是否有 onReady 表格?
- flutter - Flutter 改变系统导航栏图标亮度
- angular - 子路由组件看不到的可重用组件
- javascript - 如何添加到 chrome 存储中已经存在的数组?