机器学习-CatBoost如何处理非数值型(Object)数据

很多机器学习模型在使用数据训练模型时,都无法处理非数值型数据,这就需要我们提前将数据进行独热编码,然后再使用数据训练模型,不过我一直倾心于CatBoost模型,CatBoost模型有以下几个特征:
1.无需对非数值型数据进行预处理(!!!特别暖心)
2.不需要调参,采用默认的参数就能训练出很好的模型
3.可以基于GPU训练模型
4.可以减少过拟合(如果你的数据平衡性非常差,那就当我没说)

虽然CatBoost能够处理非数值型数据,但是在使用非数值型数据训练模型之前,需要在CatBoost中定义好非数值型数据的列名,代码如下

categorical_features_indices = np.where(data.dtypes != np.float)[0]//很重要!!!
catboost= CatBoostRegressor(iterations=30, learning_rate=0.005, depth=6,cat_features=categorical_features_indices)

你可能感兴趣的:(机器学习,机器学习)