机器学习:1、线性回归--波士顿房价预测

目录

前言

线性回归理论推导

波士顿房价预测

matlab2021实现

python实现



前言

        包含线性回归的梯度下降与正规方程的理论推导。

        波士顿房价预测示例 matlab2021a版本 + juptype  python版本        

        全部的内容如下:因为无法上传pdf,公式再打一遍太折磨了,直接上传了markdown里的内容,以及juptype转为了py导出的版本。复制粘贴可能部分换行符可能修改。

        全部的代码、数据集、理论推导pdf文件:Regression.7z-机器学习文档类资源-CSDN文库


线性回归理论推导

        为markdown格式的,在在线编辑器里面可以查看。或者下载文件里有导出的pdf版。

        正规方程证明:        ​​​​​​​

 

**回归与分类 *Regression/classification***    *2021-10-05*

​		连续与离散

## *Linear Regression*线性回归

### 一次线性回归

>一次线性代价函数关于两个自变量的图,3D曲面图,仅有全局最优解。对应一个特征,一次偏导计算很简单。

***hypothesis function* 假设函数:**
$$
{H}_{({θ}_{0},{θ}_{1})}({x}_{i})\, =\, {θ}_{0}+{θ}_{1}*{x}_{i} 
$$

***cost function* 代价函数:**

$$
{J}_{({x}_{i})}({θ}_{0},{θ}_{1})\, =\frac {1} {2m}\sum ^{m}_{i=1} {
  {[H}_{({θ}_{0},{θ}_{1})}}({x}_{i})\, -y({x}_{i}){]}^{2} 
$$


**优化目标*minimisize***

$$
min({J}_{({θ}_{0},{θ}_{1})}({x}_{i})\, )\, \, \, for\, {θ}_{0}{,θ}_{1} 
$$

***Batch gradient descent Model* 梯度下降**

​		全览数据集

$$
{θ}_{j}\, =\, {θ}_{j}\, -\, α\, *\, \frac {\partial (J({θ}_{0},{θ}_{1}))} {\partial {θ}_{j}}\, \,  
$$


$$
\frac {\partial (J({θ}_{0},{θ}_{1}))} {\partial {θ}_{j}}\, \, =\, \frac {1} {m}\sum ^{m}_{i=1} {[H({x}_{i})-y({x}_{i})]}\, *{x}_{i} 
$$

>1、α为学习率,随着迭代进行,在靠近局部最优处,梯度(斜率)不断减小至0,因此不必要设置α减小。
>
>2、对每一个参数同时进行梯度下降,而不是更新完一个利用新参数更新下一个参数
>
>3、θ0 对应的 x 可以认为全1

___
___
### *Multiple features variables* 多特征

1、*Gradient Descent* 梯度下降方法  

​		类似一次回归模型。设m组数据(样本),n个特征,加上偏置,共需寻找n+1个最优参数(假设时候依然采用n,无影响)。同理可以设置偏置对应的数据为1。

​		***hypothesis function* 假设函数:**

$$
{H}_{({θ}_{1},{θ}_{2},\cdot \cdot \cdot {θ}_{n})}({X}_{i})\, =\, {θ}_{1}*{x}^{i}_{1}+\, {θ}_{2}*{x}^{i}_{2}+\cdot \cdot \cdot +{θ}_{n}*{x}^{i}_{n}\, (i=1,\cdot \cdot \cdot ,m) 
$$

$$
\frac {\partial (J({θ}_{1},\cdot \cdot \cdot ,{θ}_{n}))} {\partial {θ}_{j}}\, \, =\, \frac {1} {m}\sum ^{m}_{i=1} {[H({x}_{i})-y({x}_{i})]}\, *{x}^{i}_{j}\, (1\ll i\ll m,\, 1\ll j\ll n) 
$$

​		矩阵运算有:
  • 4
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
波士顿房价数据集是一个经典的数据集,用于线性回归模型的训练和评估。下面是使用Python和Scikit-learn库来实现波士顿房价预测的步骤: 1. 导入所需库和数据集 ```python import numpy as np import pandas as pd from sklearn.datasets import load_boston boston = load_boston() X = pd.DataFrame(boston.data, columns=boston.feature_names) y = pd.DataFrame(boston.target, columns=['MEDV']) ``` 2. 数据预处理 ```python # 查看数据集信息 print(X.info()) # 查看数据集统计信息 print(X.describe()) # 查看缺失值情况 print(X.isnull().sum()) # 将数据集分为训练集和测试集 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 对训练集和测试集进行标准化处理 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) ``` 3. 构建线性回归模型 ```python from sklearn.linear_model import LinearRegression lr = LinearRegression() lr.fit(X_train_scaled, y_train) ``` 4. 模型评估 ```python # 计算训练集和测试集上的R2得分 print('Training R2 score:', lr.score(X_train_scaled, y_train)) print('Testing R2 score:', lr.score(X_test_scaled, y_test)) # 计算训练集和测试集上的均方误差 from sklearn.metrics import mean_squared_error y_train_pred = lr.predict(X_train_scaled) y_test_pred = lr.predict(X_test_scaled) print('Training Mean Squared Error:', mean_squared_error(y_train, y_train_pred)) print('Testing Mean Squared Error:', mean_squared_error(y_test, y_test_pred)) ``` 5. 使用模型进行预测 ```python # 构造一组新的房屋属性数据 new_house = np.array([6.320e-03, 1.800e+01, 2.310e+00, 0.000e+00, 5.380e-01, 6.575e+00, 6.520e+01, 4.090e+00, 1.000e+00, 2.960e+02, 1.530e+01, 3.969e+02, 4.980e+00]).reshape(1, -1) new_house_scaled = scaler.transform(new_house) # 使用模型进行预测 price_pred = lr.predict(new_house_scaled) print('Predicted price:', price_pred[0]) ``` 以上就是使用线性回归模型进行波士顿房价预测的完整代码。注意,这只是一个简单的示例,实际应用中可能需要更复杂的特征工程和模型调参。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值