如何在分类中预测二进制值
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. 你到底想做什么。分类是数据科学中的一个巨大领域。这是我能用你提供的信息做的最好的事情。 :)
目前,我要分析一些数据(大约在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. 你到底想做什么。分类是数据科学中的一个巨大领域。这是我能用你提供的信息做的最好的事情。 :)