# 机器学习-采用线性回归模型对波士顿房价进行预测-numpy实现 **Repository Path**: ABigWildCat/numpy-linear-regression ## Basic Information - **Project Name**: 机器学习-采用线性回归模型对波士顿房价进行预测-numpy实现 - **Description**: 机器学习-采用线性回归模型对波士顿房价进行预测-numpy实现 - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2023-03-14 - **Last Updated**: 2024-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 机器学习-采用线性回归模型对波士顿房价进行预测-numpy实现 #### 介绍 采用线性回归模型对波士顿房价进行预测-numpy实现 需运行BDG_4.py,代码用到了LinearRegression_1.py中的函数,须将二者放在同一文件夹下运行~ #### 代码内容说明 1. 采用梯度下降法(BGD)优化线性回归模型,对波士顿房价进行预测 (1)导入数据(从 boston.csv 文件中导入数据) (2)划分数据(分成训练集和数据集) (3)数据归一化 (4)训练模型 model(train_x,train_y) (a)初始化参数 w 可使用 np.concatenate 数组拼接函数,将截距与权重参数合并在一起。 (b)求 f(x) (c)求 J(w) (d)求梯度 (e)更新参数 w 其中,(b-e)的过程经过 epochs 次迭代。 (5)画出损失函数虽迭代次数的变化曲线(通过损失函数变化曲线来观察梯度下降执行情况) (6)测试集数据进行预测,模型评估 (7)可视化:展示数据拟合的效果 2. 小批量梯度下降算法(MBGD)的编程实现 #### 使用说明 需要在参数空间def get_arguments()中更改参数,选择不同的数据集、、训练集测试集划分比例、随机数种子、正则化方式、线性回归模型、损失函数等。 ![输入图片说明](image.png) 1. '--data_name',选择不同的数据集,可选择'boston', 'california',赋给default(即 default='boston' 选择波士顿房价数据集,default= 'california' 选择加利福尼亚房价数据集) 2. '--test_size', 训练集测试集划分比例,设置default=0.33, 即训练集的比例为33%,可根据需求修改 3. '--random_state', 随机数种子,default=42, 划分数据集的随机种子数为42,可根据需求修改 4. '--normalization',正则化方式,可选择 '0: no normalization,' '1: rescale the data to [0, 1],' '2: rescale the data to [-1, 1],' '3: z-score normalization',即不需要正则化、最大最小标准化(将数值放缩到[0, 1]、数值放缩到[-1, 1])、z-score 标准化,可根据需求修改 5. '--Regression',线性回归模型,可选择''1: normal equation of LinearRegression,' '2: SGD LinearRegression,' '3: Ridge Regression,' '4: Lasso Regression,' '5: Polynomial Regression',即LinearRegression,还有 随机梯度下降SGD、Ridge(岭回归)、 Lasso、Polynomial regression(多项式回归)等模型,可根据需求选择赋给default 6. '--loss',损失类型,评价指标:MSE 和 $R^2$值,可根据需求修改 7. '--max_iteration',int,最大迭代次数,默认 200,本代码用设置1000,可根据需求修改 8. '--eta0',随机梯度下降算法(SGDRegressor)的学习率,本代码用设置0.01,可根据需求修改 6. '--alpha',float,L2 正则化项的强度(L2 正则化项在添加到损失时除以样本大小),本代码用设置0.5,可根据需求修改 7. '--degree',Polynomial regression(多项式回归)的阶数,只本代码用设置2,可根据需求修改 #### numpy实现线性回归模型对波士顿房价进行预测-实现结果 1. xxxx 2. xxxx 3. xxxx