机器学习:利用sklearn方法的一元线性回归模型(通过成绩预测绩点)

这是之前学习线性回归时做的模型,精简版如果去掉注释只用了16行~~

首先需要数据:一个班级内所有人某课程的成绩、所有人最后的平均绩点(当然数据越多越好)

72 2.5
81 2.98
61 1.76
81 2.89
72 2.24
56 2.25
68 2.03
60 1.97
60 2.16
89 2.48
73 2.22
60 1.9
72 2.29
86 2.69
67 1.81
71 2.73
86 3.1
59 1.28
71 2.52
77 2.92
55 1.79
95 3.24
72 2.48
64 1.85
77 3.15
75 2.55
68 1.9
69 2.05
71 2.24
74 2.63
73 2.88
78 2.06
91 3.03
76 2.37
56 1.21
59 1.19
63 1.9
76 2.42
93 3.09

这里用了我们班大一下学期的高数成绩,可以看出来很是惨烈

接下来先上源码和运行截图再进行概述

import matplotlib.pyplot as plt
import xlrd
from sklearn.linear_model import LinearRegression
import numpy as np
# 载入数据,打开excel文件
ExcelFile = xlrd.open_workbook("D:\文件\机器学习/new.xls")
sheet1 = ExcelFile.sheet_by_index(0)
x = sheet1.col_values(0)
y = sheet1.col_values(1)
# 将列表转换为matrix
x = np.matrix(x).reshape(39, 1)
y = np.matrix(y).reshape(39, 1)
print(x, y)
model = LinearRegression()
model.fit(x, y)
# 划线
plt.plot(x, y, 'b.')
plt.plot(x, model.predict(x), 'r')
plt.show()

机器学习:利用sklearn方法的一元线性回归模型(通过成绩预测绩点)_第1张图片

结果说明:可以看到运行出来是一个一次函数的图像,当把鼠标放到坐标系的任意位置,右下角都会显示其对应的x和y的值,其中x代表自变量(数学成绩),y代表(平均绩点),这样就能清楚的观察到,当数学成绩为多少时,平均绩点的可能值(反之仍成立)

使用的第三方库作用:

1、matplotlib:是一个画图所需要的包

2、xlrd:我用的是xls格式的Excel文件,所以用了这个库来导入对应的表以及表中的行和列

3、numpy:这里用numpy里的matrix方法将表格转换为矩阵形式

4、sklearn.linear_model:使用了sklearn中的线性回归模型,关于这里详情可以看之前本人写好的文章https://blog.csdn.net/tianhai12/article/details/119273702

机器学习:Sklearn库中linear_model线性模型中‘LinearRegression‘线性回归源码理解(一)_tianhai12的博客-CSDN博客

你可能感兴趣的:(机器学习,Python,sklearn,机器学习,python)