在一个机器学习项目中,我有一些关于公司客户的训练数据,这些数据包括20个输入特征和一个代表客户对市场营销活动反馈的标签,形式为是/否的答案:
c1 => {f1_1,f2_1,...,f20_1} {Yes}c2 => {f1_2,f2_2,...,f20_2} {No}
要求是对每个客户的接受概率进行预测。
因此,训练数据具有二元分类标签,而要求的是回归预测。
我能够提取出每个特征与分类标签之间的相关性强度。
基于特征与分类标签的相关性强度为特征应用所谓的重要性权重,并将这些权重应用于特征值以生成类似于评分率的东西作为每个客户的回归标签,这样做有意义吗?
c1_score = w1(f1_1) + w2(f2_1) + ... + w20(f20_1)c2_score = w1(f1_2) + w2(f2_2) + ... + w20(f20_2)
如果不行,有其他建议吗?
回答:
要求是对每个客户的’接受概率’进行预测。
因此,训练数据具有二元分类标签,而要求的是回归预测。
绝对不可以。
你的任务绝对是分类任务。
大多数分类器实际上不会输出“硬”标签0/1
作为输出;它们默认生成的是概率,这些概率随后通过阈值操作转换为硬标签(例如,如果概率p > 0.5
,则声明1
,否则声明0
)。
现在,有时候出于某种原因,业务问题恰好需要这些概率而不是硬标签(你的情况就是这样,Kaggle上的大多数分类竞赛也是如此);这当然不会改变任何方法论(它仍然是分类问题),除了去掉对最终阈值操作的要求——无论如何,这不是问题统计部分的一部分,正如这个Cross Validated讨论的答案正确指出的那样:
当你为新样本的每个类输出一个概率时,你的练习的统计部分就结束了。选择一个阈值来将新观察分类为1与0不再是统计的一部分。这是决策部分的一部分。
所以,你只需要使用你常用的分类算法,无论是逻辑回归,随机森林等,然后只使用相应的方法来获取概率而不是类标签(例如,scikit-learn中逻辑回归的predict_proba
方法,以及其他平台/算法的类似方法)。
你可能还会发现我以下回答(以及其中的链接)有用: