# #线性模型
# 𝑓(𝑥) = w1*x1+ w2*x2+.....+wn*xn
# w为权重,b称为偏置项,可以理解为:𝑤_0×1
# w,x为矩阵函数,w=[w0,w1,w2.....],x=[1,x1,x2,x3.....]
# 数组:1,2,3维度,数组运算,加法,乘法
# 矩阵:矩阵必须是二维的,矩阵运算,矩阵乘法:[m,l]*[l,n]=[m,n] 矩阵运算为了满足线性回归的运算需求,x是特征值,W是权重值
#
# 损失函数:算法,策略,优化
# 损失函数:J(日)== ∑(ℎ𝑤 (𝑥𝑖)−𝑦𝑖 )^2 最小二乘法,尽量减少这个损失,寻找最有W值
# 方法:
# 1、正规方程,𝑤=(𝑋^𝑇 𝑋)^(−1) 𝑋^𝑇 *𝑦,大样本不适用
# 2、梯度下降,沿着损失函数下降的方向找,更新W值,最后就能找到山谷的最低点
# API:
# sklearn.linear_model.LinearRegression()
# 正规方程,coef_:回归系数
#
# sklearn.linear_model.SGDRegressor( )
# 梯度下降,coef_:回归系数
#**************** 特征值必须标准化 ***********************#
import sklearn.metrics
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.model_selection import train_test_split
#1、获取数据
lb=load_boston()
#2 分割数据
x_train,x_test,y_train,y_test=train_test_split(lb.data,lb.target,test_size=0.25)
#进行特征值和目标值标准化处理
#实例化两个PAI
from sklearn.preprocessing import StandardScaler
stdx=StandardScaler()
x_train=stdx.fit_transform(x_train)
x_test=stdx.transform(x_test)
#目标值标准化
stdy=StandardScaler()
y_train=stdy.fit_transform(y_train.reshape(-1,1))
y_test=stdy.transform(y_test.reshape(-1,1))
# #estimator
# #正规方程
# lr=LinearRegression()
# lr.fit(x_train,y_train)
# print(lr.coef_)
# #预测价格
# y_predict=lr.predict(x_test)
# print(stdy.inverse_transform(y_predict))
# #梯度下降
# sg=SGDRegressor()
# sg.fit(x_train,y_train)
# print(sg.coef_)
# y_predict=sg.predict(x_test)
# print(stdy.inverse_transform(y_predict))
# #回归性能评估
# 均方误差评价机制:MSE,
# MSE=1/m*∑(y^i-y)^2 y^i 预测值,y真实值
# 回归评估API,sklearn.metrics.mean_squared_error()
# 用法:
# mean_squared_error(y_true,y_pred)
# 均方误差回归损失
# y_true:真实值
# y_pred:预测值
# return:浮点数结果
#进行方差判断
# from sklearn.metrics import mean_squared_error
# wc=mean_squared_error(stdy.inverse_transform(y_test),stdy.inverse_transform(y_predict))
# print(wc)
#
# #解决过拟合
# 正则化,尽量减小高次项特征的影响
# L2正则化:Ridge,岭回归,带有正则化的性回归
# API:
# sklearn.linear_model.Ridge(alpha=1.0) 具有l2正则化的线性最小二乘法
# alpha:正则化力度
# coef_:回归系数
#通过岭回归进行房价预测
from sklearn.linear_model import Ridge
rd=Ridge(alpha=0.5)
rd.fit(x_train,y_train)
print(rd.coef_)
y_predict=rd.predict(x_test)
print(stdy.inverse_transform(y_predict))
from sklearn.metrics import mean_squared_error
wc=mean_squared_error(stdy.inverse_transform(y_test),stdy.inverse_transform(y_predict))
print(wc)
线性回归,岭回归学习
最新推荐文章于 2024-10-30 15:22:37 发布
文章介绍了线性模型在机器学习中的基本概念,包括线性方程、损失函数和优化方法(正规方程与梯度下降)。使用sklearn库进行了线性回归和随机梯度下降(SGD)的实现,并对特征值进行了标准化处理。通过均方误差评估模型性能,然后引入了正则化技术,特别是L2正则化的Ridge回归,以减少过拟合并提高预测准确性。
摘要由CSDN通过智能技术生成