【生产实习-毕设】pyspark学生成绩分析与预测(上)

注意:数据由实习单位老师提供(需要自行搜索下载),页面美化为下载模板。

项目介绍:前端页面输入影响成绩的属性,预测出成绩,并作可视化展示——属性对成绩的影响。使用python pyspark 进行数据预处理、探索性数据分析可视化、调用模型、对比模、型调、优评估等。

成果展示:

1.页面功能展示

2.输入影响成绩因素值——预测成绩

 3.可视化部分

 

 4.pyspark代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from Cython import inline
from matplotlib.font_manager import FontProperties
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import ElasticNet
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.svm import SVR
from sklearn import preprocessing, metrics, svm
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn import preprocessing, metrics, svm
from sklearn.metrics import mean_squared_error, mean_absolute_error, median_absolute_error
import scipy
import pickle
import seaborn as sns
from sympy.physics.quantum.circuitplot import matplotlib
sns.set(font_scale=1.5)
import warnings
warnings.filterwarnings("ignore")# 初始化数据
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False   # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei')                       # 解决Seaborn中文显示问题
plt.rcParams['figure.dpi'] = 100
plt.rcParams['figure.figsize'] = (5,3)
plt.style.use('seaborn-darkgrid')student = pd.read_csv('../data/student-mat.csv')
data = pd.read_csv('../data/student-mat.csv')
df=pd.read_csv('../data/student-mat.csv')
#print(df.columns)
#student["G3"].describe()
#print(student.isna().sum())   # 统计数据集各列缺失值个数
#student.info()  #来查看一下变量的数据类型
most_correlated1 = student.corr().abs()['G3'].sort_values(ascending=False)
most_correlated1 = most_correlated1[:15]
print(most_correlated1)student = pd.get_dummies(student)
#print(student.columns)
# 选取相关性最强的8个
most_correlated = student.corr().abs()['G3'].sort_values(ascending=False)
most_correlated = most_correlated[:15]
print(most_correlated)y=data["G3"]
# 选取G3属性值
labels = data["G3"]
print(most_correlated.index)
# 删除school,G1和G2属性
data=data[['G3','failures', 'Medu', 'age','Fedu','goout','traveltime','romantic','higher']]
feature=data.columns
data = data.drop(labels=["G3"],axis="columns")
print(data)
# 对离散变量进行独热编码
data = pd.get_dummies(data)
print(data.columns)
#y = pd.get_dummies(y )X_train,X_test,y_train,y_test=train_test_split(data,y,test_size=0.15,random_state=42)model5=LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
model5=model5.fit(X_train,y_train)
y_pred5=model5.predict(X_test)print('线性回归可解释方差值:{}'.format(round(metrics.explained_variance_score(y_test, y_pred5), 2)))
print('线性回归平均绝对误差:{}'.format(round(metrics.mean_absolute_error(y_test, y_pred5), 2)))
print('线性回归均方误差:{}'.format(round(np.sqrt(np.mean((y_pred5- y_test) ** 2)))))
print('线性回归 R方值:{}'.format(round(metrics.r2_score(y_test, y_pred5), 2)))LR_model=LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
# 拟合
model=LR_model.fit(X_train, y_train)
filename = '../modelR/LR_Model'       #保存为当前文件夹下model文件夹里面 命名XGB_Model
# 序列化 对象以二进制方式保存到硬盘 write, b=二进制
pickle.dump(model, open(filename, 'wb'))# 加载模型
with open('../modelR/LR_Model', 'rb') as model:# 反序列化对象模型   read b=二进制loaded_model = pickle.load(model)# print(X_test.head(1))# 使用加载的模型进行预测predictions = loaded_model.predict(X_test.head(5))print(predictions)

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

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

相关文章

【Linux 学习】进程优先级和命令行参数!

1. 什么是优先级? 指定进程获取某种资源(CPU)的先后顺序; Linux 中优先级数字越小,优先级越高; 1.1 优先级和权限的区别? 权限 : 能不能做 优先级: 已经能了,但是获…

选择自动化工具是一个关键的决策过程

好的自动化软件测试工具,不仅可以有效的缩短全生命周期的交付周期,还可以提高测试的有效性,还可以保证更好的高质量的交付。工具的选型是一项重要的决策过程,工具的采用涉及到企业的效率、成本和长期发展。 1、需求分析 确组织希…

C语言结构体,成员地址高低位问题

写一个这样的 C 程序&#xff1a; #include <stdio.h> #include <stdint.h>typedef struct WTF {uint8_t a;uint8_t b;uint8_t c;uint8_t d; } WTF;int main() {WTF wtf;printf("hello world\n");printf("wtf.a addr %p\n", &(wtf.a));p…

AI大模型探索之路-应用篇10:Langchain框架-架构核心洞察

目录 前言 一、LangChain设计目标 二、LangChain设计之道 三、LangChain典型应用 1、简单的问答Q&A over SQL CSV: 2、聊天机器人Chatbots: 3、总结摘要Summarization: 4、网页爬虫Web scraping: 5、本地知识库&#xff08;Q&A with RAG): 三、LangChain架构…

(React Hooks)前端八股文修炼Day9

一 对 React Hook 的理解&#xff0c;它的实现原理是什么 React Hooks是React 16.8版本中引入的一个特性&#xff0c;它允许你在不编写类组件的情况下&#xff0c;使用state以及其他的React特性。Hooks的出现主要是为了解决类组件的一些问题&#xff0c;如复杂组件难以理解、难…

你不知道的JavaScript---作用域与闭包深入解析与实践指南

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; JavaScript 中的…

用于深度调试的 GPT:AI 如何改变代码质量

GPT-4革命&#xff1a;未来编程必备的AI调试专家 介绍 人工智能在编程中的概述&#xff1a;人工智能 (AI) 在编程中的集成彻底改变了开发人员编码和解决问题的方式。 GPT 等人工智能工具在软件开发的各个阶段&#xff08;包括调试&#xff09;提供前所未有的帮助。 GPT在调试中…

玄子Share-使用 Pycharm 执行 Shell 脚本

玄子Share-使用 Pycharm 执行 Shell 脚本 Why&#xff1f; 为什么我要使用 Pycharm 执行 Shell 脚本呢&#xff0c;我直接使用 Linux 不行吗&#xff1f; 使用 Pycharm 执行 Shell 脚本的好处 我们的宿主机都是 WIndows 平台&#xff0c;若想编译 Shell 脚本&#xff0c;我…

Spring Boot 经典面试题(六)

1.Spring Boot如何实现消息队列&#xff1f; Spring Boot 提供了多种方式来集成消息队列&#xff0c;其中两种常用的方式是使用 Spring Integration 和 Spring AMQP&#xff08;基于 RabbitMQ&#xff09;。 Spring Integration&#xff1a; Spring Integration 是 Spring Fra…

【LeetCode】动态规划类题目详解

所有题目均来自于LeetCode&#xff0c;刷题代码使用的Python3版本 动态规划 问题分类 如果某一个问题有重叠的子问题&#xff0c;则使用动态规划进行求解是最有效的。 动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点区别于贪心算法 动态规划五部曲 确…

CentOS 各个版本下载地址

https://mirror.nsc.liu.se/centos-store/7.6.1810/isos/x86_64/ CentOS-7-x86_64-DVD-1810.iso 2018-Nov-26 00:55:20 4.2G application/octet-stream 正常版 CentOS-7-x86_64-DVD-1810.torrent 2018-Dec-03 16:03:27 85.9K application/x-bittorrent CentOS-7-x86_64-Every…

打工人第一次带团队,吐血整理的4个管理思路

作为一个一线的基层管理者&#xff0c;我带领着一个5-8人的小团队。保障产品的稳定性和需求迭代的效率&#xff0c;成为了我的工作日常。 同时&#xff0c;对下要管理好团队的发展和团队成员能力的提升&#xff0c;对上要确保团队目标的达成及效果的呈现。虽然只是一个小小的团…

嵌入式linux系统链接腾讯云的方法

各位开发者大家好,今天主要给大家分享一个,如何使用linux系统链接腾讯云的方法,因为微信小程序越来越普遍,链接腾讯云也是日常必须掌握的一个技能。 第一:【实验目的】 1、linux 系统连接腾讯云的方法 第二:【实验原理】 涉及到原理图添加原理图 2、linux开发板 …

PlanUML和Mermaid哪个好?

引言 在当今信息化快速发展的时代&#xff0c;数据可视化和图表工具不仅对于程序员&#xff0c;也对于非技术背景的人士至关重要。绘图工具可以帮助我们更好地理解和表达复杂的概念或数据流。PlantUML和Mermaid是两款被广泛使用的绘图语言&#xff0c;它们都能够通过简洁的文本…

Docker核心特征

Docker的基本概念 Dockerfile&#xff1a;制作进行的文件&#xff0c;可以理解为制作镜像的一个清单。 镜像&#xff1a;用来创建容器的安装包&#xff0c;可以理解为给电脑安装操作系统的系统镜像。 容器&#xff1a;通过镜像来创建的一套运行环境&#xff0c;一个容器里可…

Golang教程二(判断,循环语句,函数,指针,init,defer)

目录 一、判断语句 1.if语句 2.switch语句 二、循环语句 1.传统for循环 2.死循环 3.while模式 4.do-while模式 5.遍历切片 6.遍历map 7.break&#xff0c;continue 三、函数&#xff0c;指针 1.函数定义 2.匿名函数 3.高阶函数 4.闭包 5.值传递和引用传递 6.…

Erlang 常用数据结构实现

Erlang 是一种函数式编程语言&#xff0c;其常用数据结构主要包括元组&#xff08;tuple&#xff09;、列表&#xff08;list&#xff09;、字典&#xff08;dict&#xff09;和二进制&#xff08;binary&#xff09;等。下面是这些常用数据结构的实现示例&#xff1a; 元组&a…

Hadoop技术详解

Hadoop技术详解 Hadoop技术作为大数据处理的重要基石&#xff0c;已经在多个行业中得到了广泛的应用。本文将对Hadoop技术进行详细的讲解&#xff0c;帮助读者更好地理解和运用这项技术。 Hadoop是由Apache基金会开发的一个开源分布式系统基础架构&#xff0c;它允许用户在不…

模型自由度与残差自由度

模型的自由度&#xff08;degrees of freedom&#xff09;通常指的是在模型参数估计过程中剩余可以自由变化的数量。 当我们谈论残差平方和&#xff08;RSS&#xff09;或误差项的自由度时&#xff0c;确实使用的是n - k - 1的公式&#xff0c;这里&#xff1a; n 是样本大小…

微信小程序 uniapp+vue动漫交流系统 java(springboot+ssm)/python(flask+django)/

小程序Android端运行软件 微信开发者工具/hbuiderx uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 前端&#xff1a;HTML5,CSS3 VUE 后端&#xff1a;java(springbootssm)/python(flaskdja…