机器学习 线性回归:正规方程与梯度下降

 正规方程:

import pandas as pd
import numpy as np
from sklearn.datasets import load_diabetes#导入数据集
from sklearn.model_selection import train_test_split #划分数据集
# sklearn.model_selection.train_test_split 是 scikit-learn 中的一个函数,
# 用于将数据集划分为训练集和测试集。
# 使用 train_test_split 函数可以将原始数据集划分为训练集和测试集,
# 以便进行模型的训练和评估。
from sklearn.preprocessing import StandardScaler#标准化处理
from sklearn.linear_model import LinearRegression#预估器
from sklearn.metrics import mean_squared_error#模型评估:均方误差


# 正规方程的优化方法对数据进行预测

# 1)获取数据
# boston=pd.read_csv('house_data.csv')
diab=load_diabetes()
# 2)划分数据集
# x=boston.drop('target',axis=1)
# y=boston['target']
x_train,x_test,y_train,y_test=train_test_split(diab.data,diab.target,random_state=22)
# print('标准化前',x_train)
# 3)标准化
transfer=StandardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.transform(x_test)
# print('标准化后',x_train)
# 4)预估器
estimatar=LinearRegression()
estimatar.fit(x_train,y_train)
# 5)得出模型
print('正规方程权重系数为:',estimatar.coef_)
print('正规方程偏置为:',estimatar.intercept_)
# 6)模型评估
y_predict=estimatar.predict(x_test)
print('预测值',y_predict)
error=mean_squared_error(y_test,y_predict)
print('正规方程的均方误差:',error)

 梯度下降:

import pandas as pd
import numpy as np
from sklearn.datasets import load_diabetes#导入波士顿房价数据集
from sklearn.model_selection import train_test_split #划分数据集
# sklearn.model_selection.train_test_split 是 scikit-learn 中的一个函数,
# 用于将数据集划分为训练集和测试集。
# 使用 train_test_split 函数可以将原始数据集划分为训练集和测试集,
# 以便进行模型的训练和评估。
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.metrics import mean_squared_error

# 梯度下降的优化方法对数据进行预测

# 1)获取数据
# boston=pd.read_csv('house_data.csv')
diab=load_diabetes()
# 2)划分数据集
# x=boston.drop('target',axis=1)
# y=boston['target']
x_train,x_test,y_train,y_test=train_test_split(diab.data,diab.target,random_state=22)
# print('标准化前',x_train)
# 3)标准化
transfer=StandardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.transform(x_test)
# print('标准化后',x_train)
# 4)预估器
estimatar=SGDRegressor()
estimatar.fit(x_train,y_train)
# 5)得出模型
print('梯度下降权重系数为:',estimatar.coef_)
print('梯度下降偏置为:',estimatar.intercept_)
# 6)模型评估
y_predict=estimatar.predict(x_test)
print('预测值',y_predict)
error=mean_squared_error(y_test,y_predict)
print('梯度下降的均方误差:',error)

文章来源地址https://uudwc.com/A/rZ38E

原文地址:https://blog.csdn.net/qq_46103282/article/details/133042882

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月24日 07:13
【深度学习实验】线性模型(一):使用NumPy实现简单线性模型:搭建、构造损失函数、计算损失值
下一篇 2023年09月24日 07:13