众筹项目能否成功?用机器学习预测可以早知道

本文来自AI新媒体量子位(QbitAI)

Kickstarter是一家美国的众筹平台。自2009年成立至今,已经有36万余个众筹项目在平台上立项,总共筹集到30多亿美元的项目众筹款。其中,众筹项目的成功率为35.83%。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 图片来自Kickstarter官网

这篇文章中,iOS开发人员Shrikar将用机器学习预测Kickstarter上项目众筹成功的可能性。它也能帮助发起人调整项目的名称、描述、关键词以及募集资金数,使众筹成功的可能性最大。用上传图片的图像特征提高模型的准确率非常奏效,你可以在Kaggle中获取到这些数据集。

Kaggle数据集地址:

https://www.kaggle.com/codename007/funding-successful-projects

创建数据

几乎所有机器学习问题都会从挖掘数据并且试图了解更多信息开始,我们也不例外。

Kickstarter中需要募集的信息大致有如下几类:

1.Project_id:项目的唯一识别符

2.name:众筹项目名称

3.desc:项目描述

4.keywords:项目关键词

5.disable_communication: 通讯状态

6.country:项目所在国家

7.currency:计划众筹资金

8.deadline:众筹截止日期

9.state_changed_at:状态变更

10、created_at:成功后项目开始日期

11.launched:项目计划完成日期

12.backers_count: 赞助人数量

13.final_status: 目标变量

特征工程

我们需要加入一些特征来创建机器学习模型,duration和cleaned_text就是很好的选择。下面我们将拟添加特征罗列出来:

all_text:项目名称+描述+关键词(需除去连字符)

duration:项目总持续时间

days_status_changed:改变后到截止时的日期数

cleaned_text:删除标点并且只留文本

试探性数据分析(EDA)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 以国家为标准划分Kickstarter上的项目

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 以国家标准划分的项目是否众筹成功

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 项目中的最高筹集金额

scikit-learn提供了一种极好的特征可以用来构建模型,也就是我们常说的管道(Pipeline)。本案例中既有文本特征也有数值,所以我们需要有区别地转换它们。

首先,我们需要看看在被机器学习算法使用前,如何用特征联合(feature union)合并特征。

为了用特征联合合并,我们需要建立几个转换器混入(mixin)。这些混入可以使我们从计算机中提取某些列,并将它们传递给不同的转换器。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

我们看看怎样构建模型并安装管道。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

结果如下:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

在这种情况下,目标类是不平衡的:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

所以我们如果总是预测输出为0,那么将纠正(73568)/(73568+34561)≈68%的情况。模型能以目前86%的准确度来学习,我们基本上就能放心了。如果出现不平衡的情况,可以用AUC曲线(Area Under Curve)评估模型。

如要进一步探索,请移步GitHub代码区:

https://github.com/sarchak/MachineLearningNotebooks

【完】

本文作者:安妮 
原文发布时间:2017-07-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值