机器学习系列(三)——简单的决策树预测模型的构建过程
1.选择数据集
你的数据集中变量太多了,让人摸不着头脑,即便是打印出来也看不清楚。怎样才能把这些庞大的数据集简化为能看得懂的东西呢?
在这篇中我们先依据直觉选择几个变量。稍后的篇章中将介绍如何利用统计类技巧优化变量。
为了挑选一些特征变量,我们先要看一下数据集中有哪些字段。通过DataFrame的columns属性来查看即可,代码如下所示:
import pandas as pd
...
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
melbourne_data = pd.read_csv(melbourne_file_path)
melbourne_data.columns
Melbourne数据集中有一些缺失值,即有一些房子的特征值没有被记录。在后面的章节中将介绍如何处理缺失值,此处我们采取最简单的操作,即剔除数据中的缺失值。
需要注意的是参数:axis=0表示的是删除含有缺失值的行记录。
选择数据子集的方法有多种,通常使用的是以下两种操作:
点操作,可以用来选择目标变量
列表操作,用来选择特征变量
2.选择预测目标变量
你可以使用点操作来提取变量。一个单一的数据列被存储在一种叫Series的结构中,Series结构与DataFrame类似,你可以将其理解为一种特殊的,只有一列数据的Dataframe。
我们将利用点操作来选择即将要预测的数据列,即预测目标。一般来说,预测目标变量被称为y。因此利用以下代码来将Melbourne数据集中的房价预测字段存储在变量y中。
3.选择特征变量
这些被输入到模型中用来实现预测的变量就叫做“特征”。在我们的案例中,被用来预测房价的数据列就是特征。有些时候,你可以将数据集中除了预测目标之外的数据列都作为特征,而有些时候可能使用较少一些的特征,模型表现的会更好。
4.构建模型
你将利用scikit-learn库来创建模型。在编码过程中,这个库通常被简写为sklearn,如以下代码中所示。Scikit-learn是对存储在Dataframe中的数据进行建模的简单常用工具库。
构建和使用模型一般分为4步:
定义模型:搞清楚要使用什么类型的模型,是一个决策树模型还是其他模型?模型中的参数如何配置?
拟合模型:捕获数据集中所包含的模式,这一步是建模的核心步骤。
预测:利用模型来输出预测结果
模型评价:评价模型预测结果的好与差。
代码如下所示:
from sklearn.tree import DecisionTreeRegressor
# 定义一个决策树模型,设置随机参数
melbourne_model = DecisionTreeRegressor(random_state=1)
# 拟合模型
melbourne_model.fit(X, y)
许多机器学习模型在模型训练时都是具有随机性的。对参数random_state赋予一个特定的值可以让模型每次运行的结果都是一致的。这被认为是一种很好的做法。你可以对它赋予任何数值,因为无论你选择什么数值,都不会对模型的质量产生本质影响。
通过以上我们已经拟合好了一个模型,可以直接用来预测。
在实践中,你将用模型来预测市场上新的房子的价格,而不是用来预测那些我们已经知道它价格的房子。以下对训练数据中前几行数据的预测,只是为了让你看一下模型是如何工作的。
print("Making predictions for the following 5 houses:")
print(X.head())
print("The predictions are")
print(melbourne_model.predict(X.head()))
对于机器学习来说,决策树预测模型的构建过程,应该属于机器学习的实践理论,至此,一个完整的建模过程就完成了,如果需要深入的学习有关于机器学习的内容,后期也会整理给大家,环球网校小编祝大家学习顺利。
最新资讯
- 数据分析汇总报告有哪些组成?这才是数据分析师能力的体现2020-07-17
- 什么是EOI框架?这对于数据分析师竟然这么重要2020-07-17
- 如何进行业务核心数据分析?这对于数据分析师来说竟如此重要2020-07-16
- 有哪些数据分析实践的概念?不会这个的数据分析师都转行了2020-07-13
- 数据的分析思路是什么?正确的分析思路可以帮助数据分析师进步2020-07-10
- 什么是数据回归分析方法?这才是数据分析师要用到的利器2020-07-10
- 数据相关的分析方法是什么?这三种才是数据分析师的救星2020-07-10
- 高级数据分析方法是什么?这才是数据分析师进阶的必备技能2020-07-09
- 提出数据假设的方法是什么?这才是数据分析师应该明白的东西2020-07-09
- 如何找出数据优化指标?优秀的数据分析师都在这样思考2020-07-09