Kaggle机器学习入门教程一

  • 时间:2018-12-03 23:33 作者:逍遥ii 来源:逍遥ii 阅读:148
  • 扫一扫,手机访问
摘要:模型是如何工作的原文链接:https://www.kaggle.com/...这门课程将从机器学习模型如何工作以及如何使用它们开始,假如您以前做过统计建模或者机器学习,这可能会觉得很基础。别担心,我们很快就会建立强大的模型。本课程将让您为以下场景构建模型:(房价预测)你表弟在房地产投机上赚了数百万美元

模型是如何工作的

原文链接:https://www.kaggle.com/...

这门课程将从机器学习模型如何工作以及如何使用它们开始,假如您以前做过统计建模或者机器学习,这可能会觉得很基础。别担心,我们很快就会建立强大的模型。

本课程将让您为以下场景构建模型:

房价预测)你表弟在房地产投机上赚了数百万美元。因为你对数据科学的兴趣,他愿意和你成为商业伙伴。他提供钱,你提供模型来预测不同房子的价值。

你问你表弟他过去是如何预测房地产价值的。他说这只是直觉。但更多的问题表明,他已经从过去看到的房子中识别出了价格模式,并利用这些模式对他正在考虑的新房子做出了预测。

机器学习也是如此。我们将从一个叫做决策树的模型开始。用更漂亮的模型可以给出更精确的预测。但是决策树很容易了解,它们是数据科学中少量最佳模型的基本构建块。

为了简单起见,我们将从最简单的决策树开始。

简单决策树

只把房子分为两类。任何被考虑的房屋的预测价格是同一类别房屋的历史平均价格。

我们用数据来决定如何把房子分成两组,而后再确定每组的预测价格。从数据中获取模式的这一步称为模型拟合或者训练。用于拟合模型的数据称为训练数据

模型如何拟合(例如如何分割数据)的细节非常复杂,我们将在以后进行详细讲解。模型拟合后,您可以将其应用于新的数据,以预测其余房屋的价格。

改进决策树

以下两种决策树中,哪一种更有可能通过拟合房地产训练数据而得到结果?

决策树比照

左边的决策树(Decision Tree 1)可能更有意义,由于它捕捉到了这样一个事实: 卧室较多的房子往往比卧室较少的房子售价更高。这种模式最大的缺点是它没有捕捉到影响房价的其余的大部分因素,如浴室数量、面积、位置等。

您可以使用具备更多“分支”的树捕获更多的因子。这些树被称为“深”树。一个决策树,也考虑每个房子的面积大小,可能是这样的:

改进的决策树

可以通过追踪决策树来预测房子的价格,每次决策都选择与房子特征相对应的路径。这所房子的预测价格在树的底部。在底部的点叫做叶子节点

叶节点的分割和值将由数据决定,所以现在是您检查将要解决的数据的时候了。

探究数据

使用pandas探究数据

任何机器学习项目的第一步都是熟习数据。pandas库是科学家用来探究和操做数据的主要工具。大多数人在他们的代码中将pandas缩写为pd。我们用下面的命令导入pandas库:

import pandas as pd

pandas库最重要的部分是DataFrame。DataFrame保存您可能认为是表的数据类型。这相似于Excel中的工作表,或者SQL数据库中的表。

pandas提供了强大的方法,可以解决您想要解决的大多数此类数据。

举个例子,我们来看看澳大利亚墨尔本的房价数据。在实践练习中,您将把相同的过程应用到一个新的数据集,该数据集包含衣阿华州的房价。

示例(墨尔本)数据位于文件路径../input/melbourne-housing-snapshot/melb_data.csv

我们使用以下命令加载和浏览数据:

# save filepath to variable for easier accessmelbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'# read the data and store data in DataFrame titled melbourne_datamelbourne_data = pd.read_csv(melbourne_file_path) # print a summary of the data in Melbourne datamelbourne_data.describe()
RoomsPriceDistancePostcodeBedroom2BathroomCarLandsizeBuildingAreaYearBuiltLattitudeLongtitudePropertycount
count13580.0000001.358000e+0413580.00000013580.00000013580.00000013580.00000013518.00000013580.0000007130.0000008205.00000013580.00000013580.00000013580.000000
mean2.9379971.075684e+0610.1377763105.3019152.9147281.5342421.610075558.416127151.9676501964.684217-37.809203144.9952167454.417378
std0.9557486.393107e+055.86872590.6769640.9659210.6917120.9626343990.669241541.01453837.2737620.0792600.1039164378.581772
min1.0000008.500000e+040.0000003000.0000000.0000000.0000000.0000000.0000000.0000001196.000000-38.182550144.431810249.000000
25%2.0000006.500000e+056.1000003044.0000002.0000001.0000001.000000177.00000093.0000001940.000000-37.856822144.9296004380.000000
50%3.0000009.030000e+059.2000003084.0000003.0000001.0000002.000000440.000000126.0000001970.000000-37.802355145.0001006555.000000
75%3.0000001.330000e+0613.0000003148.0000003.0000002.0000002.000000651.000000174.0000001999.000000-37.756400145.05830510331.000000
max10.0000009.000000e+0648.1000003977.00000020.0000008.00000010.000000433014.00000044515.0000002018.000000-37.408530145.52635021650.000000

解释Data Description

结果为原始数据集中的每一列显示8个数字。第一个数字是count,它显示有多少行没有缺失值。

缺失值的起因有很多。例如,在测量1居室的房子时,不会收集第2居室的大小。

第二个值是均值mean,也就是平均值。在这种情况下,std是标准偏差,它度量数值的分布情况。

要解释最小值min25%50%75%和最大值max ,请想像对每个列从最低值到最高值进行排序。第一个(最小的)值是最小值。假如您遍历列表的四分之一,您会发现一个值大于25%,小于75%。这就是25%的值。第50百分位和第75百分位的定义相似,最大值是最大的数字。

练习:探究数据

kaggle链接:https://www.kaggle.com/...

这个练习将测试您读取数据文件和了解有关数据的统计信息的能力。

你的数据中最新的房子并不新鲜。对此有几个可能的解释:

  1. 他们还没有在收集这些数据的地方建造新房子。
  2. 这些数据是很久以前收集的。数据发布后建造的房屋不会出现。

假如起因是上面的解释#1,那么这会影响您对使用这些数据构建的模型的信任吗?假如这是第二个起因呢?

你如何深入研究这些数据,看看哪种解释更正当?

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】你是HTML 5的一员吗?(2019-08-15 11:58)
【系统环境|】Web前端基础怎么学?html、css、JavaScript 知识架构图(2019-08-14 17:55)
【系统环境|】零基础小白走Web前端之路是否可行?答案是yes!(2019-08-13 11:44)
【系统环境|】你知道Web前端与HTML5技术的区别吗?(2019-08-12 14:10)
【系统环境|】移动前端开发和web前端开发的区别(2019-08-11 16:49)
【系统环境|】给新手的锦囊:Web前端开发小白的学习建议和路线图(2019-08-10 16:34)
【系统环境|】都说web前端开发薪资高,入行就有上万月薪,转行难吗?(2019-08-09 14:55)
【系统环境|】干货教程 | Web前端开发学习入门指南(2019-08-08 18:27)
【系统环境|】前端开发:vue路由之前端路由的原理(2019-08-07 13:17)
【系统环境|】你不知道的web前端那些事(2019-08-06 12:29)
手机二维码手机访问领取大礼包
返回顶部