如何在分类中预测二进制值

How to predict binary value in classification

目前,我要分析一些数据(大约在table以下)。我想根据数据获得一些预测值。所以,我搜索了数据分析的算法(在 scikit-learn 中),但我找不到我找到的算法。因为我想将预测值作为二进制(例如 0 或 1),但是线性、SVN 等算法将值预测为整数(如平均值)。下面 table 有更多解释。

[已训练 - 数据]

age | gender | education | result 
45  |   1    |     9     |   Y
23  |   2    |     12    |   Y
27  |   2    |     9     |   N
31  |   1    |     11    |   Y
45  |   1    |     9     |   N

[预测-数据]

age | gender | education | result 
21  |   1    |     12    |   ?
32  |   2    |     11    |   ?
26  |   1    |     11    |   ?
54  |   1    |     9     |   ?
23  |   2    |     13    |   ?

我只想得到 Y 或 N 的预测值。我搜索了 scikit-learn(http://scikit-learn.org/stable/),但我不知道最好的算法。 谁知道?谢谢!

sklearn 在分类方面支持all of these

如果想法是建立一个可解释的模型,那么 LogisticRegression 可能是可行的方法。

它构建了一个类型的模型:logit(Result) = b0+b1*age+b2*gender+b3*education。它为您估算 b 系数,然后您可以将其解释为:随着年龄增加 1,保持其他一切不变,结果将增加 exp(b1)。查看更多 here.

此外,还有大量统计测试可用于测试它的稳健性。这是一个非常酷的模型,广泛用于计量经济学,但它假设线性。例如,您的 result 变量(无论它是什么意思)可能在老年时比在年轻时增加更多。因此,您可能希望将年龄汇总到组中。此外,由于非线性,您可能需要 one-hot encoding 一些因素。

一个更容易使用的模型,也是可解释的,是 DecisionTree。有关此类树的示例,请参阅 link。

如果可解释性不是问题,SVM or something like nearest neighbors or a neural network might be the way to go. Usually, data scientists use nested cross-validation 尝试使用大量参数的大量模型。外部交叉验证测试一堆不同的模型,内部交叉验证测试超参数。

啊 - 忘了说了。关于决策树,您应该特别注意微调 max_depth 超参数(但也要微调其他参数)。您也可以尝试一些合奏。集成是指你创建大量模型,然后它们都对预测进行民主投票。他们通常会大大提高准确性。对于决策树,两个非常酷的集成是 RandomForest and Gradient Boosting Trees.

如果您还有什么需要我澄清的,请告诉我。无论如何,在未来,请告诉我们 1. 你到目前为止尝试了什么,以及 2. 你到底想做什么。分类是数据科学中的一个巨大领域。这是我能用你提供的信息做的最好的事情。 :)