万事俱备!

运行本篇文章代码时必须先按顺序运行加州房价篇 (一) : 了解数据和加州房价篇 (二) : 处理数据中的所有代码

在正式开始之前,我们得先把我们的数据分成训练集(train set)和测试集(test set),因为要避免过度拟合(overfit),在中文里,矫枉过正的意思和过度拟合非常像,

打个比方,我现在在和女生甲谈恋爱,我问甲喜欢什么样的男生,甲说她喜欢短头发的男生,还说她喜欢听歌,喜欢吃辣,合计一百条规矩,我按照这些标准去要求自己,和甲处的很好,后来因为一些原因我和甲分手了,我又和女生乙谈恋爱,结果乙喜欢长头发的男生,喜欢写诗而不喜欢听歌,喜欢吃清淡的食物,这个时候我的处境就非常尴尬

从机器学习的角度来说,这个时候我在和女生谈恋爱这件事上,就过度拟合了,我应当是要让自己符合大部分女生的要求,我们的模型也应当是要对加州大部分地区都能做出预测,而不是只能预测我们同事收集过数据的地区

把数据分成训练集和测试集,就好比我在和甲谈恋爱时也和乙保持联系,那我的头发可能就不是短而是中等长度,我在学唱歌的同时也会学写诗,总而言之,能避免过度拟合

test_ratio=0.2 #打算把数据中%20的地区放入测试集
shuffled_indices = np.random.permutation(len(housing_complete)) # 打乱一下顺序
test_set_size = int(len(housing_complete) * test_ratio)
test_indices = shuffled_indices[:test_set_size]
train_indices = shuffled_indices[test_set_size:]# 获得对应的下标
#一般来说,把完全处理好的特征集记作X,目标集记作y
X_train=housing_complete.iloc[train_indices]
X_test=housing_complete.iloc[test_indices]
y_train=housing_target.iloc[train_indices]
y_test=housing_target.iloc[test_indices]

看看是不是一一对应

len(housing_complete)

输出:20640

len(X_train)

输出:16512

len(X_test)

输出:4128

4128+16512=20640

选择,训练并评估模型

加州房价篇是入门篇,旨在让大家对机器学习的整个过程有一个全面的认识,广度和深度之间往往无法兼顾,模型的原理我在后面的篇章中会有详细的阐述

机器学习经过这么多年的发展,前人已经为我们准备好了许多久经磨砺,却又经久不衰的模型,比如随机森林(RandomForest)模型,我们拿来就能用

from sklearn.ensemble import RandomForestRegressor
forest_reg = RandomForestRegressor()
forest_reg.fit(X_train, y_train)#用训练集训练模型

利用测试集的前十个地区,我们来看看效果

forest_reg.predict(X_test[:10])

输出:

y_test[:10].values

输出:

嗯,除了第一个地区差距有点大之外,还不赖,不过我们就只能用肉眼来判断一个模型的好坏吗?

当然不是,现在一般用均方根误差(RMSE)来表示一个模型的好坏,感兴趣的朋友可以搜索均方根误差,看看具体的公式,简而言之,得出的数字越小,模型越好,数字越大,模型越差,我们来试试

from sklearn.metrics import mean_squared_error
test_predict=forest_reg.predict(X_test)
MSE=mean_squared_error(test_predict,y_test)
RMSE=np.sqrt(MSE)
RMSE

输出:
50729

y_test.describe()

输出:

测试集的数据中,房价最大值有50万,最小值2万,而模型的误差在5万,这个结果只能说是一般

但是仔细想想,我们才读了三篇文章,就已经几乎能做到一整个拿着高薪的分析师团队耗费大量时间才能做到的事情,这正是机器学习的魅力所在

加州房价篇到此结束,下一个篇章:手写数字识别篇

对应源码(需下载后查看)

对应视频

原文章地址

转载请注明出处

加州房价篇 (三) : 模型的训练,评估和房价的预测相关推荐

  1. 基于深度学习的脑电图识别 综述篇(三)模型分析

    作者|Memory逆光 本文由作者授权分享 导读 脑电图(EEG)是一个复杂的信号,一个医生可能需要几年的训练并利用先进的信号处理和特征提取方法,才能正确解释其含义.而如今机器学习和深度学习的发展,大 ...

  2. 【word2vec】篇三:基于Negative Sampling 的 CBOW 模型和 Skip-gram 模型

    系列文章: [word2vec]篇一:理解词向量.CBOW与Skip-Gram等知识 [word2vec]篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模 ...

  3. 泰坦尼克号 第三章 模型搭建和评估

    第三章 模型搭建和评估–建模 经过前面的两章的知识点的学习,我可以对数数据的本身进行处理,比如数据本身的增删查补,还可以做必要的清洗工作.那么下面我们就要开始使用我们前面处理好的数据了.这一章我们要做 ...

  4. RCNN学习笔记——第三篇: 实现FRCNN网络训练、评价与预测(附全部源码)

    RCNN学习笔记--第三篇: 实现FRCNN网络训练.评价与预测(附全部源码) 本文是个人根据B站大佬Bubbliiiing的FRCNN系列视频同步完成FRCNN训练,记录心得和遇见的问题. 关于RC ...

  5. (一)联邦学习FATE框架1.6.0版本单机部署和实战训练评估篇

    FATE 1.6.0学习笔记 系统安装,环境搭建和fate框架搭建指南手册下载 链接:https://pan.baidu.com/s/1K-88uye6RN3tLHw6f_r9Ug 提取码:5y2u ...

  6. R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型、并评估模型在测试集和训练集上的分类效果(accuray、F1、偏差Deviance):Bagging算法与随机森林对比

    R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型.并评估模型在测试集和训练集上的分类效果(accuray.F1.偏差Deviance):Bagging算法与随机森林对比 ...

  7. CCNA-第三篇-OSI模型-上

    CCNA-第三篇-OSI模型-上 OSI七层模型-上 第七层 应用层 第六层 表示层 第五层 会话层 第四层 传输层=定义数据发送方式 TCP UDP 第三层 网络层=ICMP协议,网络设备 第二层 ...

  8. 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种

    基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种 ,含数据集可直接运行 完整代码下载地址:基于LSTM三分类的文本情感分 ...

  9. 模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)

    模型评估与模型选择 当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准. 训练误差的大小,对判定给定的问 ...

  10. 模型训练评估——交叉验证法的介绍

    与留出法相似,将数据集D划分为k个子集同样存在多种划分方式. 为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的有 ...

最新文章

  1. 对Document library中修改文档的Author之实现修改在list(三)
  2. 删除作业计划出错(DELETE语句与 REFERENCE约束FK_subplan_job_id冲突。)
  3. 解决异常:“The last packet sent successfully to the server was 0 milliseconds ago. ”的办法
  4. 学习3dmax的第二天
  5. VC2008下使用OpenSSL 1 0 0g 免编译
  6. mysql 备份优化_MySQL 备份过程优化
  7. 3D动画设计软件:Cinema 4D R25 for mac(c4d r25)
  8. 如何成为一名卓越的数据科学家——第一剑之再谈问题定义
  9. 流行趋势:大背景图片在网页设计的20个精彩应用
  10. 关于 chrome 上支付宝安全控件无法使用,以及检测不到数字证书的问题
  11. 10个在工作中常用的表格函数
  12. 【算法复习】迭代改进
  13. jvm.option是什么,它是如何加载的
  14. 电力 Web SCADA 工控组态编辑器
  15. 数据库常见问题:服务器'SQL SERVER'上的 MSDTC 不可用
  16. package.json 封装 vue模块_vue仿小米商城 -- 我知道的都在这里了
  17. 彻底弄懂I420格式
  18. 电脑连不上手机热点了
  19. libxml库之xmlParseMemory和xmlDocDumpFormatMemory函数
  20. js对象实现选项卡功能

热门文章

  1. CodeForces55A - Flea travel 解题报告
  2. .net是什么域名?域名注册需要实名制吗?
  3. 微信登录显示连接失败,请检查网络
  4. 使用urjtag了解WRV54G
  5. 4399IT运维实习生面试经历
  6. 苹果无线耳机连接不上_为什么我们一定要买TWS真无线耳机?
  7. 基于Springboot和Idea的医院管理系统(挂号、缴费、取药、住院) 毕业论文+项目源码及数据库文件+包远程安装配置+代码讲解
  8. Spring Cloud Bus 使用说明
  9. 面试题汇总-大牛的Java170
  10. ---------------------------------IDEA之第二个程序course(解决田刚老师的问题)