2022年6月,笔者准备去北京海淀某地租房,看中了一个小区的房子。笔者囊中羞涩,只想租一个小一居室,大约44.5平米,但是这个小区的房子,各类大小的房子都有,偏偏44.5平米户型房子的价格没有,房东开价6600,但是笔者并不清楚这个价格是否合理,在笔者的印象中,似乎44平米的房子只要6000就可以租下来了,所以为了探求这个44平米房子的定价到底多少比较合适,笔者准备用数学的方式去解析。这主要是因为笔者最近一直在研究股票的定价和走势,并就职于某投资公司。

一、简单线性回归模型

这个用线性回归去预测房子的价格是最简单直接的想法,因为房子的价格基本上就是正比于房屋的面积。

首先从安居客平台人肉扒一些数据,这里可以做成爬虫形式,但是鉴于笔者第二天就要和房东见面并讨价还价,现在肯定是没有时间搞爬虫了。人肉的部分数据如下:

     price   area0    6900  54.001    7800  64.002    7500  64.003    8000  79.474    7300  65.005    7500  64.006    8700  78.007    9300  88.008    6800  53.009    7650  61.0010   7500  63.00

使用python的sklearn库做线性回归拟合,代码如下:

 data = pd.read_csv("house_lianjia.csv")test_data = pd.read_csv("test_data.csv")X_train = data.iloc[:,1:2]Y_train = data.priceX_test = test_data.iloc[:,1:2]model = LinearRegression()model.fit(X_train, Y_train)a = model.intercept_  # 截距b = model.coef_  # 回归系数Y_pred = model.predict(X_test)print(Y_pred)

结果:

截距= 2943.219869932199 ,回归系数= [68.76643144],说明每平米的价值是68元,截距2943说明这个房子哪怕是0平米,也有约2943元的价值,2943可以视为该地段的溢价。

但是发现我们44.5 平米的房子的预测价格是6000,显然与房东和中介的价格6600相去甚远,似乎我们的模型过于简单了。

二、多元线性回归预测房价

我在猜想,这套房子可能有一些别的因素让它的价格飙升,仔细看了下,这套房子是精装修的,其他的地方,与其他房子并无而致,那么我就加上了是否精装修的数据也作为input参数,继续使用上述代码拟合。

结论:

截距= 2827.2965946558515 ,回归系数= [  73.18208156 -432.21539661]

房屋预测价格5651元,更低了!

是否装修的回归系数居然是一个负数!也就是说,装修过的房子反而价格更低了,这让我开始怀疑数据有问题。仔细观察数据发现,在安居客平台上,装修和不装修的房子价格差距几乎没有,反而由于不少同平米但是简装的房子要价更高(可能是房东或中介开价不合理),导致反而装修成了负因素。

看来,装修并不能成为影响价格。那么我们怎么改进呢?

三、多项式回归预测房价

这里我突然想到,我的训练数据,普遍在60-80平左右,是相对比较大的房子。而根据常识,(胡诌的数据),3升的可乐要10元,1升的可乐要6元,500ml的可乐不会1升可乐的价格一半而更可能是4元。由于房子本身就是可以提供诸如学区、交通等诸多属性,面积反而是越大,单位面积越便宜,那么聪明的大家一定想到,用多项式去预测房价和面积的关系更合理。这个大概是因为单位面积是一个导数的概念,我们并不能线性的认为这个导数是不变的。

修改代码,将其中的linear regression,改为

 poly_reg = PolynomialFeatures(degree = 2)      X_poly = poly_reg.fit_transform(X_train)model = linear_model.LinearRegression()model.fit(X_poly, Y_train)  

结论:

预测模型 y=3913.375914298715+(0.0*x)+(39.629799812165544*x^2)

预测价格是6090

6090相比于6000还是靠谱一点,但是仍然与房东给出的价格差很远,难道房东要黑心的吃我一笔生意?看了看,确实有很多中介打出了如5500租48平,6000租50平,6500租54平之类的数据。

四、修改修改还是修改

于是我便打定主意,去找房东砍价,我报出了6100元,但是房东说只租6500。似乎结局应该是我们找别的房子,这个交易告吹而结束。

并不是!房东和中介好心的劝我说6500的价格是合理的,我反过来和他们告知,有很多中介,能给出6500租到54平的数据,那我为什么要花6500去租一个45平的数据?

但是他们告诉我,建议去实地看看那些小中介的房子,于是我就跑去和那些小中介交流。

结果令人诧异的是,当我和这些小中介交流的时候,他们纷纷告诉我,有些价格是乱标的,有些只是第一个月的价格,有些根本就是欺诈,他们只是用低价招揽顾客,然后实际并没有那么便宜的房子!而且也有很多小中介会提出,和小中介签约而非和房东直签。这样风险就很大,而且网上也不乏小中介以各种理由扣钱的事例。

所以,这说明我数据本身就是脏的呀!就像股票中有很多噪音,在房子中,也有很多房子的价格是别人乱标的,这些会极大的干扰你的模型。我于是人肉重新从链家和我爱我家这2个大平台上抄录数据,因为这2个大中介起码还是最靠谱的。

使用新的数据重新跑模型,结论如下:

在多项式回归中

y=5029.849501721333+(0.0*x)+(18.31727360194959*x^2)

44平米的房子的预测价格是6485

虽然这2家大平台数据量有点少,不太适合用多项式拟合。

那么重新用线性拟合呢?

截距= 3472.349750926156 ,回归系数= [63.7437833]

44平米的房子的预测价格是6300.

这下结果就非常接近房东和中介的开价了,这说明如果预测有所偏差,可能不是你模型有问题,而是你的数据有问题!

五、终章

鉴于6月是北京的租房旺季,我也意识到房东给出的6500是合理,于是我火速和房东沟通,房东鉴于我长租,一个人,就降到了6400元。而我,知道6400元是合理的价格。

不知道读者有没有对模型有新的修改意见。

记录一次使用线性回归和多项式回归为房价定价相关推荐

  1. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. 【Python】数据分析——直方图、散点图、线性回归、多项式回归、拟合度

    目录 绘制直方图 绘制散点图 线性回归 多项式回归 拟合度 数据分析就是在一大批杂乱无章的数据中,运用数字化工具和技术,探索数据内在的结构和规律,构建数学模型,并进行可视化表达,通过验证将模型转化为知 ...

  3. 线性关系r范围_一个简单线性回归和多项式回归在R中的实现示例

    一个简单线性回归和多项式回归在R中的实现示例 常见线性回归的原理就不多说了,大家都懂,就是普通最小二乘法( Ordinary Least Square , OLS )回归法,主要用于简单线性回归.多项 ...

  4. 机器学习入门实践——线性回归模型(波士顿房价预测)

    机器学习入门实践--线性回归模型(波士顿房价预测) 一.背景介绍 给定一个大小为 n n n的数据集 { y i , x i 1 , . . . , x i d } i = 1 n {\{y_{i}, ...

  5. 机器学习(上)线性回归、多项式回归、标准差、百分位数、数据分布、散点图

    大数据实验室第8次打卡 一.机器学习入门 数据集 在计算机中,数据集指的是任何数据集合.它可以是从数组到完整数据库的任何内容. 数据类型 1.数值:离散数据和连续数据.离散数据限制为整数的数字.连续数 ...

  6. 【机器学习-学习笔记】单/多变量线性回归、多项式回归、逻辑回归、过拟合、正则化

    https://blog.csdn.net/m511655654/article/details/81507857 问题 描述 表达式描述 表达式 单变量线性回归 只含有一个特征/输入变量 一元一次表 ...

  7. 线性回归与多项式回归的区别,如何判断他们的使用场景

    前言:    以下内容是个人学习之后的感悟,转载请注明出处~ 总结:   回归属于监督学习的一种的方法, 从连续的数据中得到模型,然后将该数据模型进行预测或者分类. 线性回归模型 把数据通过画图画出来 ...

  8. 机器学习02线性回归、多项式回归、正规方程

    单变量线性回归(Linear Regression with One Variable) 预测器表达式: 选择合适的参数(parameters)θ0 和 θ1,其决定了直线相对于训练集的准确程度. 建 ...

  9. 简单线性回归和多项式回归

    所用数据集women提供了15个年龄在30~39岁间女性的身高和体重信息,想通过身高预测体重. 简单线性回归 结果数据分析: 回归系数(3.45)显著不为0(p<0.001),表明身高每增高1英 ...

最新文章

  1. 白话经典算法系列之七 堆与堆排序
  2. 遇到网络问题你是怎么解决的?安琪拉有二招
  3. 转投AI?英国这所大学决定裁掉数学系,激怒了菲尔兹奖得主
  4. MPLS 成为连接到云的绝佳方法的4个原因
  5. Spring IDE 1.2.4发布
  6. Xshell、Xftp入门使用
  7. 小猫的java基础知识点汇总(下)
  8. 剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境
  9. 【原创】构建高性能ASP.NET站点 第五章—性能调优综述(后篇)
  10. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...
  11. 【算法】动态规划笔记
  12. [Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
  13. 安装索引源码阅读工具 lxr 安装配置初探
  14. Xshell是做什么用的?Xshell使用教程分享
  15. origin 去掉白边
  16. Impala sql实现同比计算(lag函数)
  17. Thrift生成java、php代码报错Cannot use reserved language keyword: end
  18. 将7z分卷合并成一个7z文件,然后就可以使用7z或rar软件等打开
  19. 终于完美解决OneNote无法同步的问题!如此简单!
  20. python3中aiohttp+asyncio 高效率爬取图片例子,本地保存

热门文章

  1. c语言程序设计冒泡排序在哪,C语言程序设计冒泡排序教学案例杨进
  2. 宏碁欲做行业老大 华硕推“巨狮计划”
  3. 搭建虚拟Web主机(基于域名、IP、端口)
  4. windows彻底删除idea
  5. 常用资料备查(1)-长周期行业-(1980-2014)
  6. 跟着我从零开始入门FPGA(一周入门系列 第一天)
  7. 友盟+林鸣晖:友盟+产品矩阵助力开发者全面提效
  8. MTK tpd驱动框架
  9. abs在c 语言中的作用是什么,abs()函数以及C ++中的示例
  10. 上汽通用五菱:搭建质量运营平台,实时预警为汽车制造保驾护航