关于如何快速通过期末考试--线性回归

本篇文章更多的是解决期末考试的问题。

本人主要学习计算机图形学,而并非机器学习,在机器学习中也有很多不足不懂之处,也是还在学习,但不是个人重点方向。

这里我们不再讲解原理,直接套路性的教大家如何通过我们(仅我们学校)的期末考试。

当然,我依然希望大家能更多的理解其中的原理再来学习。原理在上一篇中。

先看完整代码我们再进行解析式的去理解

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

# 读数据 数据预处理
data = np.loadtxt("aqi2.csv", delimiter=",", skiprows=1, dtype=np.float32)
index = np.ones((data.shape[0], 1))
data = np.hstack((data, index))

# 切片
X = data[:, 1:]
y = data[:, 0]

# 划分训练集和测试集
train_x, test_x, train_y, test_y = train_test_split(X, y, train_size=0.8)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(train_x, train_y)

# 预测
y_pred = model.predict(test_x)

# 截距
intercept = model.intercept_
print("截距:", intercept)

# 权重(线性回归系数)
weights = model.coef_
print("权重:", weights)

# 绘制实际值和预测值的图像
plt.plot(range(len(test_y)), test_y, c='red', alpha=0.5, label='Actual')
plt.plot(range(len(y_pred)), y_pred, c='green', alpha=0.5, label='Predicted')
plt.legend()
plt.show()

套路都是这几步 

step1-读取数据

data = np.loadtxt("aqi2.csv", delimiter=",", skiprows=1, dtype=np.float32) 

//这里的意思是

delimiter表示每个数据直接插入, 即假设 1 2 之间插入 1,2 这样才符合python list的标准范式

skiprows表示跳过行数,因为我们的cvs文件很大概率是没用的,可能是序列 123456 ,这种数据没有任何意义。

dtype=np.float32表示数据类型。这里我们以32位浮点数为标准。

step2 - 切片


# 切片
X = data[:, 1:]
y = data[:, 0]

这里我不再赘述,请看之前的文章

划分训练集和测试集


# 划分训练集和测试集
train_x, test_x, train_y, test_y = train_test_split(X, y, train_size=0.8)

这是几乎我们机器学习代码都会做的事情,这里train_size=0.8表示分割。

预测


# 预测
y_pred = model.predict(test_x)

根据题目需求运算模型和提取相应数据

创建模型

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(train_x, train_y)

权重和结截距

# 截距
intercept = model.intercept_
print("截距:", intercept)

# 权重(线性回归系数)
weights = model.coef_
print("权重:", weights)

这样 你的程序已经能得到一定分数了,起码比一片空白来的好的多,是吧?

最后我们绘制曲线,这里我不再赘述

# 绘制实际值和预测值的图像
plt.plot(range(len(test_y)), test_y, c='red', alpha=0.5, label='Actual')
plt.plot(range(len(y_pred)), y_pred, c='green', alpha=0.5, label='Predicted')
plt.legend()
plt.show()

这里我们总结一下,实际上我们一般来说就这么几步实现我们的大模型训练 

读取数据->数据切片(分好类)->划分训练集->根据需求改变大模型->预测->根据需求提取数据->end

posted @ 2024-12-18 12:37  安娜アンナ  阅读(86)  评论(0)    收藏  举报