Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享

简介: Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享


随着信息技术的飞速发展,众筹作为一个互联网金融的子领域已经成为个人和小企业主筹集资金支持梦想的创新渠道点击文末“阅读原文”获取完整代码数据

相关视频

image.png

无论对于众筹发起者还是众筹平台而言,如何利用历史数据去准确预测一个众筹项目的成功与否乃至最终筹款额度都是非常值得探讨研究的问题。

解决方案

任务/目标

根据历史数据,帮助客户分析众筹项目成功规律,预测每个项目的筹款额度。

数据源准备

从Kickstarter平台上爬取了众筹项目数据查看文末了解数据免费获取方式,其中包含了众筹项目名称、链接、描述、支持者数量和许多其他特征。随后进行了数据清洗。主要处理了各种爬虫过程中产生的缺失值。

7e10b0548698f45e10c846faf5fc9c78.png

print(df_2018.shape)
print(df_2016.shape)

e1d2089cbee6406bb03c2d119dbb7936.png

特征转换

项目名称字段二分为离散型变量(已知/未知);项目描述抽象成项目描述字数。额外加入可计算属性平均每参与者贡献额。

df.country = df.country.'N,0"', value='NO')
ummies(df.drop(labels=['name', 'launched', 'deadlin
df_encoded['avbacking'] = (df_encoded['usd_pledgal']/(df_encoded['backers']+1))

构造

划分训练集和测试集

考虑到筹款项目与时间关系不大,使用最普遍的不放回抽样方法划分训练集与测试集,比例为4:1。

数据分析

我想从了解Kickstarter项目的基础数据开始,这包括项目发起地、主要类别、持续时间、目标等内容。

percent_plot((df.countcounts()/df.s


cab170d751912916ac7370ce8ebc0c8f.png

0e8a8842d5cf5945305d9aac1f5b62a9.png

4ab26c581b65c2cf455483ed35ef48bd.png

4ab26c581b65c2cf455483ed35ef48bd.png


bf6afaa19700deff64e09d962be7f27a.png


描述性统计

从描述性统计中我们能学到什么?成功与什么有关?我们必须记住,相关性并不等于因果关系。

050331bbf21af04402d090f8ceb86472.png


机器学习分类模型

我们来看看是否能够准确地预测哪些项目会成功,哪些项目不会成功。我们将使用随机森林分类器,因为这种集成学习方法通常相当强大,并且不是基于距离的(所以我们不需要进一步标准化特征,如项目持续时间、实际筹集资金或实际目标金额)。

R_moel(42, X_train, X_test, y_train, y_test)


c4a691bad11f9dbefeab70ae9d349315.png

e080f48aabc0a63c22e4d3a2352ad565.png

print_iprtant_fe='columns'))
usd_gol_real
duration
main_category_Music

结论

根据随机森林集成学习器的特征重要性,最重要的特征包括实际目标金额(usd_goal_real)、项目持续时间(duration)、主要类别中的漫画(main_category_Comics)、时尚(main_category_Fashion)、音乐(main_category_Music)和戏剧(main_category_Theater)。这表明我们设定的货币目标以及我们允许人们为项目筹款的时间长度确实非常重要。艺术和表演类别的项目更有可能成功,这一结论得到了描述性统计分析的佐证。

许多因素都对此有贡献,而这些因素无法完全通过数据来解释。例如,商业理念、规划、激励人们进行筹款的措施或项目设计都很难量化。也许如果我们拥有每个项目评论中的情感数据,我们就可以将其整合到一个更大、更好的分类模型中,以预测我们的成功几率。

相关文章
|
2月前
|
运维 监控 算法
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
MSET-SPRT是一种结合多元状态估计技术(MSET)与序贯概率比检验(SPRT)的混合框架,专为高维度、强关联数据流的异常检测设计。MSET通过历史数据建模估计系统预期状态,SPRT基于统计推断判定偏差显著性,二者协同实现精准高效的异常识别。本文以Python为例,展示其在模拟数据中的应用,证明其在工业监控、设备健康管理及网络安全等领域的可靠性与有效性。
613 13
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
|
2月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
|
1月前
|
数据采集 数据可视化 数据挖掘
基于Python的App流量大数据分析与可视化方案
基于Python的App流量大数据分析与可视化方案
|
2月前
|
机器学习/深度学习 算法 调度
【强化学习】基于深度强化学习的微能源网能量管理与优化策略研究【Python】
本项目基于深度Q网络(DQN)算法,通过学习预测负荷、可再生能源输出及分时电价等信息,实现微能源网的能量管理与优化。程序以能量总线模型为基础,结合强化学习理论,采用Python编写,注释清晰,复现效果佳。内容涵盖微能源网系统组成、Q学习算法原理及其实现,并提供训练奖励曲线、发电单元功率、电网交互功率和蓄电池调度等运行结果图表,便于对照文献学习与应用。
|
24天前
|
开发框架 Java .NET
Python中main函数:代码结构的基石
在Python中,`main`函数是程序结构化和模块化的重要组成部分。它实现了脚本执行与模块导入的分离,避免全局作用域污染并提升代码复用性。其核心作用包括:标准化程序入口、保障模块复用及支持测试驱动开发(TDD)。根据项目复杂度,`main`函数有基础版、函数封装版、参数解析版和类封装版四种典型写法。 与其他语言相比,Python的`main`机制更灵活,支持同一文件作为脚本运行或模块导入。进阶技巧涵盖多文件项目管理、命令行参数处理、环境变量配置及日志集成等。此外,还需注意常见错误如全局变量污染和循环导入,并通过延迟加载、多进程支持和类型提示优化性能。
90 0
|
2月前
|
数据可视化 前端开发 数据挖掘
使用Folium在Python中进行地图可视化:全面指南
Folium是基于Python的交互式地图可视化库,依托Leaflet.js实现地理空间数据展示。本文从安装、基础使用到高级功能全面解析Folium:包括创建地图、添加标记、保存文件,以及绘制热力图、多边形和Choropleth地图等高级操作。通过展示北京市景点与全球地震数据的实际案例,结合性能优化、自定义样式和交互性增强技巧,帮助用户掌握Folium的核心功能与应用潜力,为数据分析提供直观支持。
113 2
|
2月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
2月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
98 28
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
2月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
50 4