当前位置: 首页> 科技> IT业 > 工程公司工作总结_哈尔滨网站建设多少钱_交换链接是什么意思_网上怎么找客户资源

工程公司工作总结_哈尔滨网站建设多少钱_交换链接是什么意思_网上怎么找客户资源

时间:2025/7/13 4:07:39来源:https://blog.csdn.net/killersll/article/details/145871426 浏览次数:0次
工程公司工作总结_哈尔滨网站建设多少钱_交换链接是什么意思_网上怎么找客户资源

Kaggle官方课程链接:Model Validation

本专栏旨在Kaggle官方课程的汉化,让大家更方便地看懂。

Model Validation

测量模型的性能,以便测试和比较替代方案。

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

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

什么是模型验证

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

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

您首先需要以一种易于理解的方式总结模型质量。如果你比较10000套房屋的预测和实际房屋价值,你可能会发现好的和坏的预测。浏览10000个预测值和实际值的列表是毫无意义的。我们需要将其总结为一个单一的指标。

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

每栋房屋的预测误差为:

error=actual−predicted

所以,如果一栋房子的价格是15万美元,而你预测它的价格是10万美元,那么误差是5万美元。

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

On average, our predictions are off by about X.

为了计算MAE,我们首先需要一个模型。它内置在下面的一个隐藏单元格中,您可以通过单击代码按钮查看。

# 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()

一旦我们有了一个模型,以下是我们如何计算平均绝对误差:

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

“样本内”分数问题

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

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

然而,在你用来构建模型的数据样本中,所有有绿色门的房子都非常昂贵。该模型的工作是找到预测房价的模式,因此它会看到这种模式,并且它总是预测绿色门房屋的高价。

由于这种模式是从训练数据中得出的,因此模型在训练数据中会显得准确。

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

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

编码

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

以下是代码:

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))
265806.91478373145

Wow!

样本数据的平均绝对误差约为500美元。根据样品,它的价格超过25万美元。

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

有很多方法可以改进这个模型,例如尝试找到更好的功能或不同的模型类型。

Your Turn

在我们考虑改进此模型之前,请亲自尝试模型验证。

 

关键字:工程公司工作总结_哈尔滨网站建设多少钱_交换链接是什么意思_网上怎么找客户资源

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: