单一输入的模型评分

我有一个随机森林模型,我想仅对一个输入进行评分预测。

计算评分的代码如下:

x_small=X_valid.head(1)y_small=y_valid.head(1)                        Ypredict = Pickled_LR_Model.predict(x_small)  print(Ypredict)small_score = Pickled_LR_Model.score(x_small, y_small)  print("Test score: {0:.2f} %".format(100 * small_score))  

我遇到的错误是:

UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.

错误信息已经很清楚了。是否有办法预测单一输入的模型评分或其他相关评分?我当前的模型将托管在一个Flask应用程序中,输入将仅为单个记录。


回答:

正如错误信息所述,R平方对于单一预测没有明确定义;实际上,对单一预测进行评分通常也没有意义。

尽管如此,如果您出于其他原因(例如编程)必须这样做,您可以使用其他回归性能指标,比如RMSE或MAE(它们对于单一预测按定义是相等的):

from sklearn.metrics import mean_squared_error, mean_absolute_error# 虚拟数据 - 必须是单元素数组,否则会抛出错误y_true = [3]y_pred = [2.5]# RMSE:mean_squared_error(y_true, y_pred, squared=False)# 0.5# MAE:mean_absolute_error(y_true, y_pred)# 0.5

值得注意的是,在这种预测环境中,RMSE和MAE作为性能度量比R平方更有意义;有关详细信息,请参见scikit-learn & statsmodels – 哪个R平方是正确的?中的回答的最后一部分

请注意,这些数值应按原样呈现,应作为百分比(再次强调,对于单一预测计算任何百分比数值都没有意义);您可能已经注意到,在单一预测的特殊情况下,它们有一个非常自然的解释,即它们只是预测与真实值之间的差异(这里是0.5)。

既然已经澄清了这一点,您当然可以让您的代码更有效,只需计算预测与真实值之间的差异

import numpy as npnp.array(y_true) - np.array(y_pred) # 对简单的Python列表不起作用# array([0.5])

这样您可以确信您计算的是RMSE/MAE,而不是其他临时方法。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注