随着信息技术的飞速发展,众筹作为一个互联网金融的子领域已经成为个人和小企业主筹集资金支持梦想的创新渠道。
无论对于众筹发起者还是众筹平台而言,如何利用历史数据去准确预测一个众筹项目的成功与否乃至最终筹款额度都是非常值得探讨研究的问题。
解决方案
任务/目标
根据历史数据,帮助客户分析众筹项目成功规律,预测每个项目的筹款额度。
数据源准备
从Kickstarter平台上爬取了众筹项目,其中包含了众筹项目名称、链接、描述、支持者数量和许多其他特征。随后进行了数据清洗。主要处理了各种爬虫过程中产生的缺失值。
print(df_2018.shape) print(df_2016.shape)
特征转换
项目名称字段二分为离散型变量(已知/未知);项目描述抽象成项目描述字数。 额外加入可计算属性平均每参与者贡献额。
df.country = df.country.replace(to_replace='N,0"', value='NO')
df_encoded = pd.get_dummies(df.drop(labels=['name', 'launched', 'deadlin
df_encoded['average_backing'] = (df_encoded['usd_pledged_real']/(df_encoded['backers']+1))
YiChen Xia
构造
划分训练集和测试集
考虑到筹款项目与时间关系不大,使用最普遍的不放回抽样方法划分训练集与测试集,比例为4:1。
数据分析
我想从了解Kickstarter项目的基础数据开始,这包括项目发起地、主要类别、持续时间、目标等内容。
percent_plot((df.country.value_counts()/df.s
描述性统计
从描述性统计中我们能学到什么?成功与什么有关?我们必须记住,相关性并不等于因果关系。
随时关注您喜欢的主题
机器学习分类模型
我们来看看是否能够准确地预测哪些项目会成功,哪些项目不会成功。我们将使用随机森林分类器,因为这种集成学习方法通常相当强大,并且不是基于距离的(所以我们不需要进一步标准化特征,如项目持续时间、实际筹集资金或实际目标金额)。
Rmodel(42, X_train, X_test, y_train, y_test)
print_important_fe='columns'))
usd_goal_real duration main_category_Music
结论
根据随机森林集成学习器的特征重要性,最重要的特征包括实际目标金额(usd_goal_real)、项目持续时间(duration)、主要类别中的漫画(main_category_Comics)、时尚(main_category_Fashion)、音乐(main_category_Music)和戏剧(main_category_Theater)。这表明我们设定的货币目标以及我们允许人们为项目筹款的时间长度确实非常重要。艺术和表演类别的项目更有可能成功,这一结论得到了描述性统计分析的佐证。
许多因素都对此有贡献,而这些因素无法完全通过数据来解释。例如,商业理念、规划、激励人们进行筹款的措施或项目设计都很难量化。也许如果我们拥有每个项目评论中的情感数据,我们就可以将其整合到一个更大、更好的分类模型中,以预测我们的成功几率。
关于作者
YiChen Xia
在此对YiChen Xia对本文所作的贡献表示诚挚感谢,他专注数据处理领域。擅长R语言、Python。