切换科目
重点科目
主要科目
次要科目
科数网
首页
刷题
学习
VIP会员
赞助
组卷
集合
教材
VIP
写作
游客,
登录
注册
在线学习
人工智能
附录:利用机器学习预测房价
最后
更新:
2025-02-17 15:54
查看:
129
次
反馈
能力测评
会员8.2元/月
赞助
附录:利用机器学习预测房价
房价预测是机器学习中基本的知识点,也是理想的了解机器学习原理的知识点。获取数据:数据集下载见以下链接: 链接:https://pan.baidu.com/s/1qPXdvb0oskZjv4cGw3hPrQ 提取码:qvk1 ## 1.基本数据样子 一个城市的房价收到:房屋的年限,面积,层数,房间数,浴室,价格六大因素的影响(这里仅仅用这六个参数作为距离,实际影响参数远远不止六个)。  2.单因素分布 这不是一个很大的数据,也没有太多的列,因此第一步可以绘制直方图,查看下各因素的数据分布情况。 ``` import pandas as pd import matplotlib.pyplot as plt df1 = pd.read_csv(r"./house_data.csv") #直方图 df1.hist(bins=20,figsize=(10,10)) plt.show() ``` 效果:  ## 特征,线性回归 这些影响房价的因素,我们又称之为“特征”。这些特征是如何影响房价的?就好比x,y,我们来看下各特征与房价间的关系图 ``` import pandas as pd import seaborn as sns import matplotlib.pyplot as plt house = pd.read_csv(r"./house_data.csv") house = house.astype(float) col1 = house.columns # 生成图表 for col in col1: f, ax = plt.subplots(1, 1, figsize=(12, 8), sharex=True) sns.regplot(x=col, y='price', data=house, ax=ax) x = ax.get_xlabel() y = ax.get_ylabel() ax.set_xlabel(x, fontsize=18) ax.set_ylabel(y, fontsize=18) plt.show() ```  ## 特征,箱型图 为了确定卧室数量、卫生间数量、楼层数与价格的比较,OF更喜欢箱型图,因为有数字呈现,但它们不是连续的,如 1,2,... 卧室,2.5, 3,... 楼层(可能 0.5 代表阁楼 )。 结论: 通过箱型图,去除一些黑点的异常值,我们可以发现,曲线上升比较明显的有房屋面积、卫生间数量,还有卧室数量也有些微小的曲线上升,那么我们可以认为整体上,房价与这3个特征有关系。 ``` import pandas as pd import seaborn as sns import matplotlib.pyplot as plt house = pd.read_csv(r"./house_data.csv") house = house.astype(float) col1 = house.columns # 生成图表 for col in col1: f, ax = plt.subplots(1, 1, figsize=(12, 8), sharex=True) sns.boxplot(x=house[col],y='price', data=house, ax=ax) x = ax.get_xlabel() y = ax.get_ylabel() ax.set_xlabel(x, fontsize=24) ax.set_ylabel(y, fontsize=24) plt.show() ```  ## 变量相关性 模型中有太多特征并不总是一件好事,因为当我们想要预测新数据集的值时,它可能会导致过度拟合和更糟糕的结果。如果想要一眼看出各变量间的关系,不得不向大家介绍皮尔逊相关性矩阵,用热图来呈现。  怎么看这张图?很简单,右侧的颜色色条中向上红色加深代表正相关;向下蓝绿色加深代表负相关(绝对值越大,相关性越大)。因为我们主要分析各变量与房价间的关系,所以我们比较最下一行的数据。 square房屋面积 0.7 > bathrooms卫生间数量 0.53 > bedrooms 0.31 > floos 0.26 ## 多因素,3D 上述绘制了房价与其他因子的对比,似乎价格与这些因子之间没有完美的线性关系。3个变量彼此之间的关系又如何? ``` import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import itertools from mpl_toolkits.mplot3d import Axes3D plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签 plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置 house = pd.read_csv(r"./house_data.csv") house = house.astype(float) hs2 = house.drop(['price'],axis=1) col1 = house.columns col2 = hs2.columns combine = pd.DataFrame(itertools.combinations(col2, 2)) for i in range(len(combine)): fig = plt.figure(figsize=(10,6)) ax = Axes3D(fig) x=house[combine[0][i]] y=house[combine[1][i]] z=house['price'] ax.scatter(x,y,z) plt.title("三维分析"+combine[0][i]+"-"+combine[1][i]+"-"+"price",fontsize=18) ax.set_xlabel(combine[0][i],fontsize=14) ax.set_ylabel(combine[1][i],fontsize=14) ax.set_zlabel('price',fontsize=14) plt.tick_params(labelsize=10) plt.show() ```  经过线性回归、箱型图、皮尔逊相关性矩阵和3D图的分析,都能分析出来房价与房屋面积、卫生间数量有比较大的关系。下期将会涉及一些机器学习的知识来预测房价 ## 预测 1.说明 主要是房屋面积、卫生间数、卧室数。今天,我们通过建立模型来预测房价。机器学习中关于回归算法-数据发展的预测,包含了几个模型 1、线性回归; 2、岭回归; 3、Lasso回归; 4、多项式回归。 2.线性回归 线性回归的公式很简单y=ax+b(a是系数,b是截距),借这个简单的公式来介绍下机器学习的过程。  步骤: 1、定义训练集、测试集; 2、选择模型; 3、训练模型; 4、预测和推断。 ``` import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn import linear_model import matplotlib.pyplot as plt import tkinter as t
免费注册看余下 70%
非VIP会员每天5篇文章,开通VIP 无限制查看
《高等数学》难点解析
高数教程
泰勒公式
切线与法线
切平面与法平面
驻点·拐点·极值点·零点
间断点
渐进线
瑕积分
欧拉方程
伯努利方程
Abel 收敛定理
偏导数的几何意义
偏导数的几何意义
梯度
数量场与向量场
多元函数极值
拉格朗日算子
通量与散度
环流量与旋度
格林公式
高斯公式
斯托克斯公式
三大公式比较
傅里叶级数
极坐标微元
点法式方程
变上限定积分
X型计算面积
Y型计算面积
微分的意义
渐近线
间断点
y''+py'+qy=f(x)方程
高斯
黎曼
傅里叶变换(复数)
拉普拉斯变换(复数)
高等数学测评
函数与极限
一元函数微分学
一元函数积分学
微分方程
空间向量与代数
多元微分学
多元积分学
无穷级数
《线性代数》难点解析
线代教程
近世代数对数学的整体思考
线性的意义
矩阵乘法(列视角)
矩阵乘法(行视角)
矩阵左乘
矩阵右乘
逆矩阵求解方程组
阶梯形矩阵的求法
方程组解的判定
四阶行列式的计算
线性变换的意义
线性空间
向量组的等价
线性空间的几何意义
基础解系的求法
施密特正交化
特征值与特征向量的意义
矩阵相似的几何意义
矩阵可对角化的理解
秩的意义(向量版)
秩的意义(方程版)
二次型的意义
线性代数测评
行列式
矩阵
向量空间
《概率论与数理统计》难点解析
概率教程
置信区间与上a分位数
概率中的“取”与“放”
贝叶斯公式
全概率公式
泊松分布
指数分布
伽玛分布
二维密度图的意义
卷积的意义
相关系数的意义
k阶矩是与矩母函数
卡方分布的作用
单正态区间估计理解
假设检验理解
切比雪夫不等式
中心极限定理
概率统计测评
事件与概率
一维随机变量与事件
多维随机变量与事件
随机变量的数字特征
大数定律与中心极限定理
统计量与抽样分布
参数估计
假设检验
上一篇:
旧版本
下一篇:
没有了
本文对您是否有用?
有用
(
0
)
无用
(
0
)
更多
学习首页
数学试卷
同步训练
投稿
会议预约系统
数学公式
关于
Mathhub
赞助我们
科数网是专业专业的数学网站 版权所有
本站部分教程采用AI制作,请读者自行判别内容是否一定准确
如果页面无法显示请联系 18155261033 或 983506039@qq.com