大数据分案例-基于随机森林算法构建返乡人群预测模型

news2024/12/22 21:19:01

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.项目简介

2.1研究目的及意义

2.2研究方法与思路 

2.3技术工具

3.算法原理

4.项目实施步骤

4.1理解数据

4.2探索性数据分析

4.3数据预处理

4.4特征工程

4.5模型构建

4.6模型评估

5.实验总结

源代码


1.项目背景

        随着经济的快速发展,北上广等一线城市快速崛起,主要的原因还是靠近沿海以及之前的打工潮,大批的内地人背井离乡来到大城市发展。俗话说的好,先富带动后富,现在一些二三四线城市也慢慢发展起来了,而且在疫情的背景下,一线城市经济收到较大的影响,越来越多的人们开始选择返乡发展,本次实验用Python工具来构建返乡发展模型,分析未来的趋势。

2.项目简介

2.1研究目的及意义

        由于乡村发展措施的完善以及国家大力支持乡村振兴发展战略,越来越多的人们响应国家的政策,开始返乡发展,本次实验利用python大数据工具来分析人们返乡意愿,预测未来的返乡趋势,以便各地可以及时指定更好的发展策略。

2.2研究方法与思路 

        使用pandas读取数据、分析数据、做数据预处理,然后使用sklearn构建逻辑回归和随机森林模型,最高对模型做出评估。

2.3技术工具

Python版本:3.9

代码编辑器:jupyter notebook

3.算法原理

4.项目实施步骤

4.1理解数据

首先导入数据并查看数据前五行

查看数据形状

数据共有59872行,48列

查看数据基本信息

4.2探索性数据分析

使用seaborn可视化查看label的比例

可以发现0的比例较多,大约是1的三倍。

4.3数据预处理

查看数据是否存在缺失值

可以发现每一列数据都不存在缺失值,不需要处理。

这里将f3中的low、mid、high用0,1,2代替。

4.4特征工程

 这里特征选择的时候,选取除了id和label列作为自变量X,选取了label列作为因变量。然后划分数据数据集,测试集比例为0.2,训练集比例为0.8。 

4.5模型构建

构建逻辑回归模型

逻辑回归的模型准确率为0.80

接着构建随机森林模型

可以看见随机森林模型的准确率为0.84大于逻辑回归模型的准确率,所有应该选择使用随机森林模型。

4.6模型评估

使用confusion_matrix混淆矩阵来评估模型

从打印的结果看出,模型在分类0的时候正确的个数有8608个,错误的个数有390;在分类1的时候正确的个数有1447个,错误的有1530个。

5.实验总结

通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实战中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等

在此次实战中,我还学会了下面几点工作学习心态:

1)继续学习,不断提升理论涵养。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

2)努力实践,自觉进行主角转化。只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

3)提高工作用心性和主动性。实习,是开端也是结束。展此刻自我面前的是一片任自我驰骋的沃土,也分明感受到了沉甸甸的职责。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。

这次Python实战不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。

源代码

import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')  # 忽略警告
data = pd.read_excel('返乡发展人群预测.xlsx')  
print(data.head())  # 查看数据前五行
# 打印数据形状
print(data.shape)
# 查看数据基本信息
print(data.info())
import seaborn as sns
import matplotlib.pyplot as plt
sns.countplot(data['label'])
plt.show()
# 查看数据是否存在缺失值
print(data.isnull().sum())
# 将f3中的high、mid、low用0,1,2,代替
data.replace(to_replace={'low':0,'mid':1,'high':2},inplace=True)
print(data.head())
# 准备建模的数据 
X = data.iloc[:,1:-1]  # 提取出f1-f46的数据作为自变量
y = data['label']  # 选取label作为因变量
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)  # 划分数据集
# 构建逻辑回归模型
from sklearn.linear_model import LogisticRegression
lg = LogisticRegression()
lg.fit(X_train,y_train)
print('逻辑回归模型准确率:',lg.score(X_test,y_test))
# 构建随机森林模型
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier()
forest.fit(X_train,y_train)
print('随机森林模型准确率:',forest.score(X_test,y_test))
# 模型评估
from sklearn.metrics import confusion_matrix
y_pred = forest.predict(X_test)
print(confusion_matrix(y_test,y_pred))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu16.04安装verilator+systemc并运行测试程序

link Verilator 能够把可综合的(通常不是行为级)的Verilog代码,外加一部分Synthesis,SystemVerilog和一小部分Verilog AMS代码转换成C或者SystemC代码。Verilator不是一个完整的模拟器(simulator)&#xff…

打工人必学的法律知识(六)——《劳动法》案例-差绩效不等于「不能胜任工作」

目录 一、差绩效不等于「不能胜任工作」 二、劳动者无条件解除劳动合同的情形 一、差绩效不等于「不能胜任工作」 员工在用人单位等级考核中居于末位等次,不等同于“不能胜任工作”(最高人民法院指导案例18号) 2005年7月,被告王…

【Linux】Linux多线程(上)

前言 hi~ 大家好呀,欢迎来到我的Linux学习笔记。本篇笔记将会重点从内核结构引入Linux下的线程,理解Linux下线程和进程的相关性和区别,以及线程相关的操作方法,在到之后的线程互斥和线程同步中的条件变量相关概念哦~ Linux进程控…

世界杯数据可视化分析

目录 1.数据来源 2.字段解释 世界杯成绩信息表:WorldCupsSummary 世界杯比赛比分汇总表:WorldCupMatches.csv 世界杯球员信息表:WorldCupPlayers.csv 3.数据分析及可视化 世界杯已经告一段落,作为一个学习大数据的学生&…

CentOS即将停止维护,拥抱阿里“龙蜥“(Anolis OS),VMware安装Anolis OS与介绍

一、前言 大家在自己电脑来进行服务器的一些操作时,基本都是使用CentOS 7或者是CentOS 8,但是2021年底CentOS 8宣布停止了维护;CentOS 7 在2024年6月30日也会停止维护! 所以我们是时候换一个操作系统了,经过十几年的…

[319]. 灯泡开关

[319]. 灯泡开关题目算法设计:完全平方数题目 传送门:https://leetcode.cn/problems/bulb-switcher/ 算法设计:完全平方数 问题是有多少灯是亮的。 那怎么样灯才会亮呢? 点偶数次相当于没点,开了又关。只有点奇…

标准库中的string类

深爱学习的你,在很多场景下一定经常和字符串打交道! 字符串是以‘\0’结尾的字符合集,C语言中提供了一些库函数来处理字符串,让大家在写代码的过程中方便了许多: 字符串函数_Bug程序员小张的博客-CSDN博客字符串函数https://blog…

基于Simulink的带通BPSK信号调制解调实验报告(含代码和slx文件)

重要声明:为防止爬虫和盗版贩卖,文章中的核心代码和数据集可凭【CSDN订阅截图或公z号付费截图】私信免费领取,一律不认其他渠道付费截图! 摘要 数字相位调制又称为相移键控(Phase Shift Keying,PSK),是一种十分重要的基本数字调制技术,是一种用载波相位表示输入信号…

磨金石教育摄影技能干货分享|有哪些风格独特的摄影作品

1 奋勇向前照片中退却的海浪与冲上岸的海浪交汇拍打,形成大量的白色泡沫。于是画面被平均分成两部分,分割线由左上延伸到右下,一条明显的对角线。也让画面形成对称式的构图,所以照片看着既平衡又美观。作者给照片起名为《奋勇向前…

Docker安装MySQL、MySQL主从复制、双主双从

文章目录Docker安装MySQL新建容器配置,记得 重启加载配置!测试MySQL 主从复制原理新增两个mysql,一主一从在主机上在从机上MySQL双主双从必看!创建容器在两个主机上在两个从机上问题解决Navicat无法连接MySQL的问题WARNING: IPv4 forwarding is disabled…

计算机网络概况

1 前言计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网络通信协议的协调管理下,实现资源共享和信息传递的计算机系统。简单来说,…

智慧农业灌溉系统-数字农业-农业物联网机井灌溉节水新模式

平升电子智慧农业灌溉系统/农业物联网机井灌溉系统,可实现井电双控(以电控水)、以电折水、以阀控水等各种形式的地下取水井用水计量监测控制需求,助推农业水价改革实施、高效节水灌溉和地下水超采综合治理,促进节水型社…

Python数学建模问题总结(2)数据可视化Cookbook指南·上

概括总结:一、可视化问题1.不会可视化图标;2.可视化效果不好看;3.数据可视化成果无法得到很好的推广使用。二、可视化原则准确的、有帮助的、可扩展的。三、类型1.随时间变化;2.类别比较图表;3.排名列表:有…

proc文件系统下各参数解析

文章目录一、proc文件系统1.1 /proc/[pid]1.1.1 /proc/[pid]/arch_status1.1.2 /proc/[pid]/attr1.1.2.1 /proc/[pid]/attr/current1.1.2.2 /proc/[pid]/attr/exec1.1.2.3 /proc/[pid]/attr/fscreate1.1.2.4 /proc/[pid]/attr/keycreate1.1.2.5 /proc/[pid]/attr/prev1.1.2.6 /…

【操作系统】 第一章 操作系统概述

文章目录第一章 知识体系1.1 操作系统的基本概念1.1.1 操作系统的概念1.1.2 操作系统的特征1.1.3 操作系统的目标和功能1.2 操作系统的发展历程1.3 操作系统的运行环境1.3.1 处理器的运行模式1.3.2 中断和异常的概念1.3.3 系统调用1.4 操作系统结构1.5 操作系统引导1.6 虚拟机第…

C++进阶 红黑树封装map和set

作者:小萌新 专栏:C进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:使用红黑树封装出map和set 红黑树封装map和set红黑树源代码红黑树模板参数的控制红黑树结点当中存储的数据模板参数仿函数的增加正向迭…

react基础Day04-React原理揭秘React路由基础

React原理揭秘 目标 能够说出React组件的更新机制能够对组件进行性能优化能够说出虚拟DOM和DIff算法 组件更新机制 setState() 的两个作用 修改state更新组件 过程:父组件重新渲染时,也会重新渲染子组件,但只会渲染当前组件子树&#xff…

[Android Studio]查看和修改Android API SDK的配置

🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…

高并发系统设计 -- 缓存与数据库一致性问题详细讲解

CAP理论 首先来谈一下数据的一致性这个话题,所谓的一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中的数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读…

steam搬砖项目,信息差赚钱,内含全部讲解

Steam平台就是一个全球的游戏平台,搬砖主要是搬的一款火遍全球的游戏CSGO的装备和饰品。CS听说过吧,这款游戏就是CS的一个系列。(通俗易懂的理解就是,从国外steam游戏平台购买装备,再挂到国内网易buff平台上进行售卖。…