分类中如何预测二值



目前,我应该分析一些数据(大约在下表)。我想根据数据得到一些预测值。所以,我搜索了数据分析的算法(在scikit-learn),但是我找不到我找到的算法。因为我想得到预测值为二进制(如0或1),但线性,SVN等算法预测值为整数(如平均值)。

[training - data]

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

[predict - data]

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在分类方面支持所有这些。

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

它构建一个类型为:logit(Result) = b0+b1*age+b2*gender+b3*education的模型。它为你估计b系数,然后你可以这样解释:当年龄增加1时,保持其他一切固定,那么结果将增加exp(b1)

此外,还有一些统计测试可以测试它的健壮性。这是一个很酷的模型,在计量经济学中广泛使用,但它假设线性。例如,您的result变量(不管它意味着什么)在老年时可能比年轻时增加得更多。所以,你可能想把你的年龄分组。此外,由于非线性,您可能希望对某些因素进行一次热编码。

一个更容易使用的模型,也是可解释的,是DecisionTree。请参阅链接以获取此类树的示例。

如果可解释性不是问题,SVM或最近邻或神经网络可能是可行的方法。通常,数据科学家使用嵌套交叉验证来尝试带有一堆参数的一堆模型。外部交叉验证测试一堆不同的模型,内部交叉验证测试超参数。

啊——忘了说了。关于决策树,您应该特别注意对max_depth超参数进行微调(但也要对其他参数进行微调)。你也可以尝试一些套装。合奏是指你创建了很多模型,然后它们都对预测进行民主投票。它们通常会大大提高准确性。对于决策树,两个非常酷的组合是随机森林和梯度增强树。

如果还有什么需要我澄清的,请告诉我。不管怎样,以后请告诉我们。你到目前为止所尝试的,2。这正是你想做的。分类是数据科学中一个巨大的领域。根据你提供的信息,这是我所能做的最好的了。:)

相关内容

  • 没有找到相关文章

最新更新