根据您提供的错误信息,错误是因为输入的因变量Y包含NaN值。为了解决这个问题,我们需要处理包含NaN值的数据。

请尝试以下修改:

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

data_shaoshui = pd.read_excel('D:\M_hua\shaoshui.xlsx', header=None)

X = data_shaoshui.iloc[:, 0].values.reshape(-1, 1)
Y = data_shaoshui.iloc[:, 1].values.reshape(-1, 1)

# 处理包含NaN值的行
nan_rows = data_shaoshui.isnull().any(axis=1)
X = X[~nan_rows]
Y = Y[~nan_rows]

X_tra, X_tes, Y_tra, Y_test = train_test_split(X, Y, test_size=0.25, random_state=7)

lr = LinearRegression()
lr_fit = lr.fit(X_tra, Y_tra)
print('{:.3f}'.format(lr_fit.score(X_tra, Y_tra)))

lr_coef = pd.DataFrame(lr_fit.coef_, columns=['Coefficient'], index=['A'])
lr_coef['Intercept'] = lr_fit.intercept_
lr_coef

在这个代码中,我们使用.isnull().any(axis=1)检查每一行是否包含NaN值,并创建一个布尔索引数组nan_rows

然后,我们使用布尔索引来过滤X和Y中的行,删除包含NaN值的行。

最后,我们执行线性回归拟合和模型评估的代码。

请确保数据文件路径正确,并根据实际情况调整代码。如果问题仍然存在,请提供更多关于数据和错误的详细信息,以便我能够更好地帮助您解决问题。

解决Python线性回归模型报错:'ValueError: Input y contains NaN.'

原文地址: http://www.cveoy.top/t/topic/dqKe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录