预测算法-线性回归(鲍鱼年龄预测)

预测算法-线性回归

面对可逆矩阵

线性回归(模型,策略,算法)
模型: h(x)=WTx+b h ( x ) = W T x + b
损失函数: J(θ)=i=1N(f(xi)yi)2 J ( θ ) = ∑ i = 1 N ( f ( x i ) − y i ) 2
目标函数为: minJ(θ)=i=1N(f(xi)yi)2 min J ( θ ) = ∑ i = 1 N ( f ( x i ) − y i ) 2

方法1:梯度下降法
θ=θαJ(θ) θ = θ − α ▽ J ( θ )
α: α : 学 习 速 率
J(θ): ▽ J ( θ ) : 偏 导 数 学 习 的 方 向

方法2:标准方程法
目标函数为: minJ(θ)=i=1N(f(xi)yi)2 min J ( θ ) = ∑ i = 1 N ( f ( x i ) − y i ) 2
转化为: (yixTiw)T(yixTiw) ( y i − x i T w ) T ( y i − x i T w )
w:w^=(xTx)1xTy 对 w 求 导 : w ^ = ( x T x ) − 1 x T y

xTx x T x 的行列式不为0时,存在逆矩阵 那么条件成立, 才能计算 w^

  • 4
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以为您解答这个问题。下面是利用Sklearn实现线性回归岭回归算法的步骤: 1. 导入必要的库和数据集 ```python import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression, Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # 导入数据集 abalone = pd.read_csv('abalone.csv') ``` 2. 数据预处理 ```python # 将性别变量转换为数值变量 abalone['Sex'] = abalone['Sex'].map({'M': 0, 'F': 1, 'I': 2}) # 将数据集划分为特征和标签 X = abalone.iloc[:, :-1] y = abalone.iloc[:, -1] # 标准化特征 scaler = StandardScaler() X = scaler.fit_transform(X) ``` 3. 划分训练集和测试集 ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 4. 训练线性回归模型 ```python lin_reg = LinearRegression() lin_reg.fit(X_train, y_train) # 预测测试集 y_pred_lin = lin_reg.predict(X_test) # 计算均方误差 mse_lin = mean_squared_error(y_test, y_pred_lin) print("Linear Regression MSE: ", mse_lin) ``` 5. 训练岭回归模型 ```python ridge = Ridge(alpha=0.5) ridge.fit(X_train, y_train) # 预测测试集 y_pred_ridge = ridge.predict(X_test) # 计算均方误差 mse_ridge = mean_squared_error(y_test, y_pred_ridge) print("Ridge Regression MSE: ", mse_ridge) ``` 至此,您已经完成了利用Sklearn实现线性回归岭回归算法的过程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值