使用调整后的 R 平方评分参数计算 LOOCV

问题描述 投票:0回答:0

我有一个数据集,我在其中通过假人将分类数据集转换为数字数据集,并运行简单的线性回归模型来预测因变量。我将 R 方调整为

0.66
。 现在我想用留一法交叉验证我的模型,想看看
LOOCV
调整后的 r 方,它是否与我的预交叉验证模型相似。

cv = LeaveOneOut()
data = pd.read_excel(r'C:/Users/LENOVO/Documents/Diwali_Impact_coding/Modelling/Model_Data.xlsx', usecols=['PMlog', 'Temp', 'RH', 'WSlog', 'Type', 'Popu', 'FRPlog', 'Region'], sheet_name='City_cook2')
data.dropna(subset=['PMlog', 'Temp', 'RH', 'WSlog'], inplace=True)

data_log1 = pd.get_dummies(data, columns=['Type', 'Region', 'Popu'])  # all NUMERICAL FEATURES
X = data_log1.loc[:, data_log1.columns != 'PMlog']  # Indepenedent/Predictor Variables
y = data_log1.loc[:, 'PMlog']  # Dependent Variable
    
model_LR = LinearRegression()
    
model_LR.fit(X,y)

def adj_Rsqr(model_LR, X, y):
   xx = 1 - (1 - model_LR.score(X, y)) * (len(y) - 1) / (len(y) - X.shape[1] - 1)
   return xx

adj_Rsqr(model_LR,X,y)  # 0.66
scores = cross_val_score(model_LR, X, y, scoring=adj_Rsqr, cv=cv, n_jobs=-1)
mean(scores)

我的分数值来了

nan
任何人都可以帮助我为什么它以 nan 的形式出现。另外,如果我使用评分作为
R2
那么它也会以 nan 的形式出现,但没有其他评分,例如绝对错误等。

谢谢你的帮助。

linear-regression cross-validation scoring leave-one-out loocv
© www.soinside.com 2019 - 2024. All rights reserved.