前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >众筹项目能否成功?用机器学习预测可以早知道

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

作者头像
量子位
发布2018-03-28 17:43:47
1.2K0
发布2018-03-28 17:43:47
举报
文章被收录于专栏:量子位量子位
安妮 编译自 Shrikar Archak 量子位出品 | 公众号 QbitAI

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

图片来自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)

以国家为标准划分Kickstarter上的项目
以国家标准划分的项目是否众筹成功
项目中的最高筹集金额

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

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

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

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

结果如下:

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

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

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

https://github.com/sarchak/MachineLearningNotebooks

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建数据
  • 特征工程
  • 试探性数据分析(EDA)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档