我正在处理政府基础设施公开招标数据,并希望建立一个预测模型。我想要训练一个模型来预测一家公司是否会参与公开招标。我有公司列表中与它们相关的几个属性:公司位置,avg。历史投标金额、核心业务等,以及他们过去参与的投标。
现在的问题是,即使我希望我的输出标签是二进制的(1=will参与式的,0=will不参与的),每个投标也有它的相关属性,比如招标的政府部门(医疗、公路等),投标的金额等等。
我希望能够预测一家拥有属性A,B,C的公司是否会参与标书,其属性为X,Y,Z。你将如何建立这个模型,以及你认为哪种算法是最好的?
发布于 2016-09-29 00:13:53
生成输入数据的第一步。我建议使用蟒蛇熊猫库,然后你需要标记你的数据。这意味着您需要为您的数据分配类(无论公司是否参与)。
接下来,我建议使用一些滑雪板模型。作为基线,您可以尝试kNN和梯度增强分类器。
这种模式需要有人(你的上司或首相)理解吗?在这种情况下,我建议使用DecisionTrees (易于解释)。
我不知道你的问题有多难。您没有向我们展示按类型分组的输入特性的分布。
发布于 2017-01-27 13:44:06
这很旧,但我会尽力解释的。
如果你想尝试有监督的学习,你需要有标签的数据。用键值对组装一个列表行,表示与您的问题相关的“事件”:
row {
company:<some name>,
company_attribute_A:<some value>,
company_attribute_B:<some value>,
company_attribute_C:<some value>, ...,
tender_attribute_A:<some value>,
tender_attribute_B:<some value>,
tender_attribute_C:<some value>, ...,
company_participation:<0|1>
}你想知道X公司是否会以自己的属性参与投标,所以培训数据是用来对某一公司的投标行为进行统计分析的。
历史可能只包含“积极”的价值观:确实发生的事件。一种想法可能是人为地添加一些确实存在但公司没有参与的事件,以便将“负面”价值观也包括在内。对于Y公司来说,你可以这样做:
当添加负数据时,尝试模拟实际分布。从历史上讲,公司参与的可能性有多大? 50/50? 10/90?
当您拥有这个数据集时,可以将其分为培训数据(80%?)、开发数据(10%?)。以及测试数据(10%?)
老实说,模型和算法的选择是次要的。问题的最重要方面是您选择收集的属性(特性)集。这是数据建模/机器学习中最人性化的部分,因为这是您决定要教机器什么的地方。如何教它(您将使用什么样的算法或模型)也很重要,但不像内容那么重要。尝试使用简单的模型,如kNN,贝叶斯口味或Logistic回归。这使您能够很好地了解您的属性选择得有多好。
在您的情况下,我将研究输出概率的模型。你提到了SciKit。查看本综述,看看哪些分类器支持概率分数。
https://datascience.stackexchange.com/questions/14264
复制相似问题