基于线性回归的学生成绩预测

参考学生成绩预测_Mr_Bo_的博客-CSDN博客_学生成绩预测,使用了Anaconda3下的Spyder工具进行代码撰写、测试,最后附上数据文件以供下载。

 

代码(直接粘贴运行)

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import pandas as pd
import numpy as np
import json

data_features = pd.read_csv('SP_train.csv',
                usecols=['gender','race/ethnicity',
                         'parental level of education',
                         'lunch','test preparation course' ])
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse = False)
data_features = encoder.fit_transform(data_features)

data=pd.DataFrame(data_features,
                  columns=['gender_1','gender_2',
                           'race_1','race_2',
                           'race_3','race_4',
                           'race_5','edu_1',
                           'edu_2','edu_3',
                           'edu_4','edu_5',
                           'edu_6','lunch_1',
                           'lunch_2','test_1',
                           'test_2'
                           ],dtype=float)
x=data[['gender_1','gender_2','race_1','race_2',
        'race_3','race_4','race_5','edu_1',
        'edu_2','edu_3','edu_4','edu_5',
        'edu_6','lunch_1','lunch_2','test_1',
                          'test_2']]

y=pd.read_csv('SP_train.csv',
                usecols=['math score','reading score','writing score'])

from sklearn import linear_model
regr=linear_model.LinearRegression()
regr.fit(x,y)
coef = regr.coef_
intercept = regr.intercept_
R2 = regr.score(x,y)
print(regr.coef_)
#打印常数
print(regr.intercept_)

#预测单个学生成绩
z=regr.predict([[1,0,0,0,1,
                0,0,0,0,0,
                 0,0,1,0,1,
                1,0]])
print('score:' + str(z))



#处理测试集
data_test_features=pd.read_csv('SP_test.csv',
                 usecols=['gender', 'race/ethnicity','parental level of education','lunch','test preparation course'])
data_test_features=encoder.fit_transform(data_test_features)
data_test=pd.DataFrame(data_test_features,
                  columns=['gender_1','gender_2',
                          'race_1','race_2',
                          'race_3','race_4',
                          'race_5','edu_1',
                          'edu_2','edu_3',
                          'edu_4','edu_5',
                          'edu_6','lunch_1',
                          'lunch_2','test_1',
                          'test_2'],dtype=float)
x_test=data_test[['gender_1','gender_2',
                          'race_1','race_2',
                          'race_3','race_4',
                          'race_5','edu_1',
                          'edu_2','edu_3',
                          'edu_4','edu_5',
                          'edu_6','lunch_1',
                          'lunch_2','test_1',
                          'test_2']]

#预测测试集中学生成绩
y_test_pre=regr.predict(x_test)
y_test_pre=np.round(y_test_pre)
#y_test_pre=np.array(y_test_pre,dtype=np.int32)
#print (y_test_pre)
#print(type(y_test_pre))

list=[]
for i in range(1000):
    list.append(str(i))
#print(list)
#生成字典
dict1={}
dict1=dict(zip(list,y_test_pre))

#重写json类
class NumpyEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, (np.int_, np.intc, np.intp, np.int8,
            np.int16, np.int32, np.int64, np.uint8,
            np.uint16, np.uint32, np.uint64)):
            return int(obj)
        elif isinstance(obj, (np.float_, np.float16, np.float32,
            np.float64)):
            return float(obj)
        elif isinstance(obj,(np.ndarray,)): #### This is the fix
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)

submission1=json.dumps(dict1,cls=NumpyEncoder)

预测结果:

测试数据下载:

 基于线性回归的学生成绩预测_测试数据文件-机器学习文档类资源-CSDN下载

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是关于学生成绩等级预测线性回归的。那么,我们先来了解一下什么是线性回归线性回归是一种用于建立两个变量之间线性关系的统计学方法,其中一个变量被称为自变量(或预测变量),另一个变量被称为因变量(或响应变量)。在学生成绩等级预测中,自变量可以是学生的学习时间、考试成绩等,而因变量则是学生成绩的等级。 为了进行线性回归分析,我们需要收集足够的数据,并将其拟合到一个线性模型中。这个模型可以用来预测因变量的值,基于自变量的值。在学生成绩等级预测中,我们可以使用线性回归预测学生的成绩等级,以便及早发现学生的表现问题并采取措施加以改善。 当我们使用线性回归分析来预测学生成绩等级时,我们需要注意以下几点: 1. 数据的收集:我们需要收集足够的数据来拟合线性模型。 2. 数据的处理:我们需要对收集到的数据进行处理,以便能够应用线性回归模型进行预测。 3. 线性模型的拟合:我们需要将收集到的数据拟合到一个线性模型中。这个模型可以用来预测因变量的值。 4. 模型的评估:我们需要评估模型的性能,以确定模型是否能够准确地预测学生成绩等级。 总的来说,线性回归是一种常用的预测学生成绩等级的方法。通过收集足够的数据,并将其拟合到一个线性模型中,我们可以预测学生的成绩等级,以便及早发现学生的表现问题并采取措施加以改善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值