机器学习与人工智能基础:价值估算(第四章-训练数据)
训练数据
Training Data
前言叨B叨
机器学习, 数据是必不可少的. 本章就带大家一起过一下示例文件中用于机器学习的房价数据.
1. 浏览房价数据
让我们先从浏览数据开始我们的项目。在示例项目中找到ml_house_data_set.csv。双击预览, 这是一个简单的逗号分隔的文件,你也可以用Excel打开。然鹅,由于文件太大,直接打开会有点慢。
ml_house_data_set.csv
数据集中共有40000多条房价信息,因此,我们将使用pandas来加载数据集,并创建一个表格来显示前100条房价信息,这样便于我们在Web浏览器中查看它。
用pandas加载数据集非常简单。首先我们使用read_csv命令来加载数据到数据表(data table)。
数据表有点像一个虚拟的可编程电子表格。一旦我们的数据存入数据表对象中,我们就可以用电子表格应用程序中的数据进行许多相同的计算。接下来我们就要抓取前100行数据然后使用to_html函数将数据转换成一个网页。pandas提供了许多像这样的帮助函数来将数据转换成其他格式。
最后,我们将在这里编写HTML文件,然后使用我们的Web浏览器使用Python内置的Web浏览器模块打开它。
让我们运行代码并查看数据集中的前100行。右键单击并选择运行。下面是Web浏览器中的数据。
每一行都是一条房价信息。让我们看看数据属性:
- 在第一栏里,建造年份(year_built)。小伙伴们都知道,房龄是会影响它的价格的,所以这个属性对我们来说应该乎很有用。
- 第二列是层数,就是说这房子是单层的,还是复式的,或者是多层的.
- 接下来,有卧室的数目,也有完整的卫生间或者半个卫生间。一个完整的卫生间意思是包含淋浴, 能洗澡的那种。
- 其次,还有房子的占地面积和实用面积。这告诉我们房子的大小。
- 接下来我们有车库类型。车库分为独立的还是集成的。一个独立的车库是一个独立的建筑。还有车库的大小。
让我们滚动到最后。我们也有几个true/false标志。has_fireplace,has_pool,has_central_heating和has_central_cooling。这些告诉我们,每个房子的特点。你可以想象,有没有游泳池或空调可能会影响房子的价值,所以这对我们来说是很有用的信息。我们也有每个房子的地址,包括门牌号、街道名称、单位编号、城市编号和邮政编码。
最后,我们有一个房子的实际销售价格。这个就是我们要用机器学习系统预测的价值。要建立任何新的机器学习项目时,首先要做的就是对数据集有一个全面的了解。对你现有的数据有一个大致的了解, 对于选择解决问题的最佳方法是至关重要的。
2. 训练数据 的命名标准约定
我们的房屋销售数据集每个房屋信息有19个字段。前18个字段描述了房子本身。他们告诉我们它有多大,它在什么地方,等等。这18个字段称为特征(feature)。特征是输入到预测模型中的值。
features最后一个字段 售价(sale_price),就是我们试图预测的价值。当我们使用有监督的学习来解决问题时,我们总是有相同的设置。特征输入到有监督学习算法中后,该算法返回一个或多个目标值。为了便于与其他程序员统一口径,有一些标准来约定命名。
naming convension要输入算法的特征集合称为X,右边我们试图预测的值称为Y,当你阅读scikit-learn文档或看任何机器学习代码时,你会看到这样的命名惯例几乎无处不在。
3. 确定你需要多少数据
在我们的数据集中,我们有超过40000条房屋的销售记录。对于每一套房子,我们捕捉到18个不同的特征,如房龄,几室几厅,等等。当您在自己的程序中使用机器学习时,您可能无法拿到数以万计的记录。那么,究竟需要多少数据才能成功地使用机器学习呢?当您的数据集涵盖了模型中所有可能的特性组合时,机器学习算法起到了最大的作用。例如,我们希望我们的房价数据集包括房子的价格,卫生间数量,有没有车库,有没有游泳池等等。
表现出的组合越多,模型就越能捕捉到这些属性是如何影响房屋最终价格的。如果你的数据集没有某个特定特征组合的数据点,机器学习模型就不能做出很好的预测。
biiiiig house例如,如果我们要求我们的机器学习模型给我们一个有100个卧室和80个卫生间的巨大宫殿的价格估计,它将不能给我们一个非常准确的估计,因为在我们的数据集中没有这样的房子。至少,在建立机器学习模型时,一个好的点子是在数据集中的数据至少是模型中特征数量的10倍。
我们有18个特征,在我们的住房数据集,所以我们希望有至少180个房子工作。但并不是一定要求要这样。在某些情况下,获取更多的数据是不可能的。数据的数量比特征数少,会这使得问题更具挑战性。
最后,数据多一般总是比数据少更好。你需要训练的数据越多,你就越有可能建立一个能在不同场景中做出准确预测的系统。所以,如果你有很多可用的数据,一定要使用它。
在接下来的课程中,我们将学习如何检测机器学习系统的准确性。精确度测量(Accuracy measurements)让你知道何时已经有足够的数据,或者何时需要再收集更多数据。
结语
如有错误请高手指正.
你的 关注-收藏-转发 是我继续分享的动力!