如何使用scikit-learn预测具有分类和连续特征的二元结果?

时间:2016-07-29 14:44:28

标签: python r machine-learning

我需要为分类问题选择模型和机器学习算法的建议。

我试图预测一个主题的二元结果。我的数据集中有500,000条记录,还有20条连续和分类的功能。每个科目都有10-20条记录。数据标有其结果。

到目前为止,我基于作弊表here思考逻辑回归模型和内核近似。

我不确定在R或Python中实现它时从哪里开始。

谢谢!

2 个答案:

答案 0 :(得分:0)

在任何数据挖掘项目中选择算法和优化参数都是一项艰巨的任务。因为它必须为您的数据和问题定制。尝试不同的算法,如SVM,随机森林,Logistic回归,KNN和...并测试每个算法的交叉验证,然后比较它们。 您可以使用GridSearch in sickit learn尝试不同的参数并优化每种算法的参数。也试试this project 用遗传算法测试一系列参数

答案 1 :(得分:0)

功能

如果您的分类功能没有太多可能的不同值,您可能需要查看sklearn.preprocessing.OneHotEncoder

型号选择

“最佳”模型的选择主要取决于可用的训练数据量以及您希望获得的决策边界的简单性。

您可以尝试将维度缩减为2维或3维。然后,您可以可视化您的数据,看看是否有一个很好的决策边界。

有500,000个训练样例,您可以考虑使用神经网络。我可以为初学者推荐Keras,为知道神经网络如何工作的人推荐TensorFlow

您还应该知道Ensemble methods

一个很好的备忘单,您可以在in the sklearn tutorial找到的内容:

http://scikit-learn.org/stable/_static/ml_map.png

试一试,比较不同的结果。没有更多信息,就无法给你更好的建议。