4.Model Validation

你已经建立了一个模型。 但它有多好?

在本课程中,您将学习如何使用模型验证来衡量模型的质量。 测量模型质量是迭代改进模型的关键。

What is Model Validation

你几乎要评估你构建的每个模型。在大多数(尽管不是全部)应用中,模型质量的相关测量是预测准确性。换句话说,模型的预测是否接近实际发生的情况。

在测量预测准确性时,许多人犯了一个大错误。他们使用他们的训练数据进行预测,并将这些预测与训练数据中的目标值进行比较。你会看到这种方法的问题以及如何在一瞬间解决它,但让我们考虑一下我们如何首先做到这一点。

您首先需要将模型质量概括为可理解的方式。如果您比较10,000个房屋的预测价值和实际价值,您可能会发现好的和坏的预测混合在一起。查看10,000个预测值和实际值的列表将毫无意义。我们需要将其总结为一个指标

有许多用于总结模型质量的指标,但我们将从一个称为平均绝对误差(也称为MAE)开始。让我们从最后一个单词开始分解这个指标,error。

每个房子的预测错误是:

error=actual−predicted

所以,如果房子花费150,000美元并且你预测它将花费100,000美元,那么误差就是50,000美元。

使用MAE指标,我们获取每个误差的绝对值。 这会将每个误差转换为正数。 然后我们取这些绝对误差的平均值。 这是我们对模型质量的衡量。 用简单的英语,可以说是

     平均而言,我们的预测大约是X.

要计算MAE,我们首先需要一个模型。 下面是一个模型。

【1】

# Data Loading Code Hidden Here
import pandas as pd# Load data
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
melbourne_data = pd.read_csv(melbourne_file_path) 
# Filter rows with missing price values
filtered_melbourne_data = melbourne_data.dropna(axis=0)
# Choose target and features
y = filtered_melbourne_data.Price
melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'BuildingArea', 'YearBuilt', 'Lattitude', 'Longtitude']
X = filtered_melbourne_data[melbourne_features]from sklearn.tree import DecisionTreeRegressor
# Define model
melbourne_model = DecisionTreeRegressor()
# Fit model
melbourne_model.fit(X, y)
DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,max_leaf_nodes=None, min_impurity_decrease=0.0,min_impurity_split=None, min_samples_leaf=1,min_samples_split=2, min_weight_fraction_leaf=0.0,presort=False, random_state=None, splitter='best')

一旦我们有了模型,这就是我们计算平均绝对误差的方法:

【2】

from sklearn.metrics import mean_absolute_errorpredicted_home_prices = melbourne_model.predict(X)
mean_absolute_error(y, predicted_home_prices)434.71594577146544

The Problem with "In-Sample" Scores

我们刚刚计算的度量可以称为“样本内”得分。我们使用单个房屋“样本”来构建模型并对其进行评估。这就是为什么这很糟糕。

想象一下,在大型房地产市场,门颜色与房价无关。

但是,在用于构建模型的数据样本中,所有带绿色门的房屋都非常昂贵。该模型的工作是找到预测房价的模式,因此它将看到这种模式,它将始终预测绿色房屋的价格高。

由于该模式源自训练数据,因此模型在训练数据中看起来是准确的。

但是,如果在模型看到新数据时这种模式不成立,那么在实际使用时该模型将非常不准确。

由于模型的实用价值来自对新数据的预测,因此我们测量未用于构建模型的数据的性能。最直接的方法是从模型构建过程中排除一些数据,然后使用它们来测试模型对以前没有见过的数据的准确性。该数据称为验证数据

Coding it

scikit-learn库有一个函数train_test_split,可以将数据分成两部分。 我们将使用一些数据作为训练数据来拟合模型,我们将使用其他数据作为验证数据来计算mean_absolute_error。

这是代码:

[3]

from sklearn.model_selection import train_test_split# split data into training and validation data, for both features and target
# The split is based on a random number generator. Supplying a numeric value to
# the random_state argument guarantees we get the same split every time we
# run this script.
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state = 0)
# Define model
melbourne_model = DecisionTreeRegressor()
# Fit model
melbourne_model.fit(train_X, train_y)# get predicted prices on validation data
val_predictions = melbourne_model.predict(val_X)
print(mean_absolute_error(val_y, val_predictions))
255481.2698515171

Wow!

您的样本数据的平均绝对误差约为500美元。 但样本之外超过25万美元。

这是几乎完全正确的模型与大多数实际用途无法使用的模型之间的差异。 作为参考,验证数据中的平均房屋价格为110万美元。 因此,新数据中的误差大约是平均房屋价值的四分之一。

有许多方法可以改进此模型,例如尝试查找更好的特征或不同的模型类型。

Your Turn

在我们改善模型之前,尝试进行模型验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【POJ - 2195】Going Home(二分图最优匹配,费用流 或 KM)

题干: On a grid map there are n little men and n houses. In each unit time, every little man can move one unit step, either horizontally, or vertically, to an adjacent point. For each little man, you need to pay a $1 travel fee for every step h…

微机原理实验8254计算机钢琴,GitHub - SincereXIA/PianoMFC: 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC...

PianoMFC西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC需要连接西电微机原理实验室提供的 QTH9054 微机试验箱,使用其蜂鸣器发声,若不连接,程序会直接播放 mp3 文件模拟钢琴声。请在 release 处下载编译…

5.Underfitting and Overfitting

在这一步结束时,您将了解欠拟合和过拟合的概念,并且您将能够应用这些办法来使您的模型更准确。 Experimenting With Different Models 现在您已经有了一种可靠的方法来测量模型精度,您可以尝试使用其他模型,并查看哪种模型可以提…

福建省计算机初级职称,2019福建助理工程师职称评定条件材料及审核管理制度...

一学历、资历条件要求(破格申报不在此列,详情请咨询了解)申报工程技术系列中级工程师须符合下列条件之一:1.博士研究生毕业;2.硕士研究生毕业后,从事所申报专业工作满3年;3.本科毕业后,从事所申报专业工作满…

【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)

题干: Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? If you never have such experiences, you would never know what fun treasure exploring brings…

6.Random Forests

Introduction 决策树会让您做出艰难的决定。 有很多树叶的深树将会过拟合,因为每个预测都来自其叶子上只有少数房屋的历史数据。 但是叶子很少的浅树会表现不佳,因为它无法捕获原始数据中的许多区别。 即使在今天,最成熟的建模技术也面临着过…

7.Handling Missing Values

本教程是学习机器学习课程的第2部分。 本教程选择了1级完成的位置,因此如果您从1级完成练习,您将获得最大的收益。 在此步骤中,您将学习三种处理缺失值的方法。 然后,您将学习如何比较这些方法在任何给定数据集上的有效性。 Intr…

打开电脑计算机超级慢,手把手教你电脑开机慢怎么办

等到花都谢了,你怎么还不开机?这电脑开机真是离奇的慢,有心将它换了,奈何兜里空空。凑合着用又无法忍受这种煎熬。其实你只需要用鼠标点几下就可以不用等待这漫长的开机过程了。高铁,飞机,网络,…

【POJ - 1486】Sorting Slides(思维建图,二分图求必须边,关建边,图论)

题干: Professor Clumsey is going to give an important talk this afternoon. Unfortunately, he is not a very tidy person and has put all his transparencies on one big heap. Before giving the talk, he has to sort the slides. Being a kind of minima…

用OpenSSL编写SSL,TLS程序

http://zhoulifa.bokee.com/6134045.html http://blog.sina.com.cn/s/blog_86ca13bb0100vaph.html http://blog.chinaunix.net/uid-26575352-id-3048856.html 一、简介: SSL(SecureSocket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport…

信息技术计算机伦理与安全教案,龙教版信息技术七年级下册第7课 安全与道德 教案...

ID:9954219分类:全国,2019资源大小:228KB资料简介:题 目第七课 安全与道德总课时1设计来源自我设计教学时间教材分析这节课计算机与网络安全部分定义介绍和叙述较多,所以为了避免枯燥可以设计课件和并准备病毒计算机安全报道的视频、多媒体讲解、图片等…

【HDU - 5706】GirlCat(bfs)

题干: As a cute girl, Kotori likes playing Hide and Seek with cats particularly. Under the influence of Kotori, many girls and cats are playing Hide and Seek together. Koroti shots a photo. The size of this photo is nmnm, each pixel of the ph…

8.Using Categorical Data with One Hot Encoding

本教程是机器学习系列的一部分。 在此步骤中,您将了解“分类”变量是什么,以及处理此类数据的最常用方法。 Introduction 分类数据是仅采用有限数量值的数据。 例如,如果人们回答一项关于他们拥有哪种品牌汽车的调查,结果将是明…

iPhone换屏幕测试软件,怎样检验iPhone是否更换过屏幕?

原标题:怎样检验iPhone是否更换过屏幕?关注下图公众号,鉴定苹果手机真假↓↓↓购买新手机时,到手后会想手机各零部件是否是正品原装,就好比屏幕是否原装屏!入手一部iPhone新机的时候,该如何检验…

*【HDU - 5707】Combine String(dp)

题干: Given three strings aa, bb and cc, your mission is to check whether cc is the combine string of aa and bb. A string cc is said to be the combine string of aa and bb if and only if cc can be broken into two subsequences, when you read the…

《TCP/IP详解》学习笔记(一):基本概念

为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱 了各地人的口音,让他们无法合作一样。计算机使用者意识到,…

【POJ - 3272】Cow Traffic(dp,建反向图,DAG拓扑图)

题干: The bovine population boom down on the farm has caused serious congestion on the cow trails leading to the barn. Farmer John has decided to conduct a study to find the bottlenecks in order to relieve the traffic jams at milking time. The…

pc服务器不同型号,服务器与PC系统软件之不同

服务器与PC系统软件之不同对于中关村在线的网友来说,PC系统应该都不陌生,而且分分钟重装的水准。但在笔者过往的服务器装机经验中,可谓是一部千年血泪史。服务器和PC系统差别还是很大的。现在的PC系统多是windows7和windows10,而在…

9.XGBoost

本教程是机器学习系列的一部分。 在此步骤中,您将学习如何使用功能强大的xgboost库构建和优化模型。 What is XGBoost XGBoost是处理标准表格数据的领先模型(您在Pandas DataFrames中存储的数据类型,而不是像图像和视频这样的更奇特的数据类…

*【HDU - 5711】Ingress(tsp旅行商问题,优先队列贪心,状压dp,floyd最短路,图论)

题干: Brickgao, who profited from your accurate calculating last year, made a great deal of money by moving bricks. Now he became gay shy fool again and recently he bought an iphone and was deeply addicted into a cellphone game called Ingress. …