机器学习·一元线性回归之房价预测(MATLAB版)

本文分为三个大部分:一.程序结构 二.程序代码 三.运行结果


一.程序结构

程序结构
       此实例有一个数据集sampleDataSets.txt,该数据集部分截图如下。其中,第一列为城市人口数量(单位:万人),第二列为对应的参考房价(单位:十万)。
数据集部分截图
       LR_One_Var.m文件为主程序;CompCost.m文件为计算损失值得函数;GradDesc.m文件为梯度下降函数,用于寻找最优的θ;PlotData.m文件为描绘采集数据图像的函数。


二.程序代码

LR_One_Var.m文件代码如下。

%%%%%%%%%%%%%%%%%%%%绘图函数%%%%%%%%%%%%%%%%%%%%
disp('step1:plotting data');
%1.导入采样数据
data=load('sampleDataSets.txt');%第一列是城市人口数,第二列是参考房价

%2.分配数据
X=data(:,1);%城市人口数(万人)
y=data(:,2);%参考房价(十万)
m=length(y);%数据长度

%3.绘图
PlotData(X,y);

disp('按任意键继续');
pause;

%%%%%%%%%%%%%%%%%%%%梯度下降%%%%
  • 3
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
基于线性回归的房价预测机器学习是一种利用历史房屋销售和房屋基本信息等数据,通过线性回归模型来预测未来房价的方法。下面是基于线性回归的房价预测机器学习的步骤: 1. 收集数据:从引用中收集2014年5月至2015年5月美国King County的房屋销售价格以及房屋的基本信息数据。 2. 准备数据:对数据进行清洗和预处理,包括去除缺失值、异常值和重复值等。 3. 分析数据:对数据进行可视化分析,包括绘制散点图、直方图和箱线图等,以了解数据的分布和特征。 4. 训练模型:将数据集分为训练集和测试集,使用训练集数据训练线性回归模型,并对测试集数据进行预测和评估。 5. 评估模型:使用均方误差(MSE)和决定系数(R²)等指标对模型进行评估,以确定模型的准确性和可靠性。 6. 使用模型:使用训练好的模型对未来的房价进行预测。 下面是一个基于Python的线性回归模型的实现示例: ```python # 导入必要的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error, r2_score # 读取数据 data = pd.read_csv('kc_house_data.csv') # 数据预处理 data = data.drop(['id', 'date', 'zipcode', 'lat', 'long'], axis=1) data = data.dropna() X = data.drop(['price'], axis=1) y = data['price'] # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 训练模型 reg = LinearRegression() reg.fit(X_train, y_train) # 预测结果 y_pred = reg.predict(X_test) # 评估模型 print('Mean squared error: %.2f' % mean_squared_error(y_test, y_pred)) print('Coefficient of determination: %.2f' % r2_score(y_test, y_pred)) # 可视化结果 plt.scatter(y_test, y_pred) plt.xlabel('True Values') plt.ylabel('Predictions') plt.show() ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值