Sklearn中LogisticRegression处理降水量预测报错的问题咨询
降水预测任务中的模型疑问与实现问题
数据集概况
我有一份全数值型特征的天气数据集,目标变量PT(降水量)为连续值,用于降水量预测。数据集以Year、Month、Day作为多重索引,特征示例如下:
_, _, X, y = read_daily_data() print(X)
输出:
MEANT RH WS WD CCT MSLP MAXT MINT Year Month Day 2014 1 1 4.494412 90.203694 16.615975 166.495278 59.916667 1014.029167 8.720245 0.310245 2 5.978995 92.044333 20.621631 184.099628 63.875000 1008.670833 9.240245 3.530245 3 6.586079 88.778159 22.263927 183.268500 50.108334 1013.070833 10.400246 2.340245 4 6.358579 94.172092 15.272616 158.277724 66.666667 1007.625000 8.480246 4.600245 5 4.995662 86.622807 16.897822 225.090521 59.383333 1010.754167 7.480245 0.440245 ... ... ... ... ... ... ... ... ... 2023 11 8 7.268995 82.063136 17.965620 202.643657 33.016667 1019.379167 12.380245 3.760245 9 7.729829 82.235617 25.143419 196.132513 69.020834 1010.795833 10.380245 3.690246 10 9.101078 76.940065 27.342357 228.518643 61.875000 1005.745833 10.670245 7.960245 11 7.350245 82.186650 22.030794 242.243293 49.875000 1010.391667 8.660245 4.260245 12 5.818162 93.582846 18.648649 181.010854 85.333333 1010.112500 11.230246 2.140245 [3603 rows x 8 columns]
目标变量y示例:
print(y)
输出:
Year Month Day 2014 1 1 1.4 2 6.8 3 0.8 4 16.5 5 5.5 ... 2023 11 8 0.0 9 4.2 10 9.3 11 3.2 12 14.0 Name: PT, Length: 3603, dtype: float64
线性回归尝试
我先使用线性回归模型进行预测,代码如下:
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.3, random_state=42) std = StandardScaler() std.fit(X) X_train_std = std.transform(X_train) sgd_reg = SGDRegressor(random_state=42) sgd_reg.fit(X_train_std, y_train) X_test_std = std.transform(X_test) sgd_score = sgd_reg.score(X_test_std, y_test) print(f"{sgd_score:.3f}")
得到测试集得分:
0.385
LogisticRegression报错问题
尝试使用LogisticRegression时,执行以下代码:
lgs_reg = LogisticRegression(random_state=42) lgs_reg.fit(X_train_std, y_train)
出现错误:
ValueError: Unknown label type: continuous. Maybe you are trying to fit a classifier, which expects discrete classes on a regression target with continuous values.
疑问点
- 我知道分类模型比如LogisticRegression本质是输出连续值再通过阈值量化,自行实现的话可以输入连续目标值,为什么scikit-learn的
LogisticRegression不支持这种操作? - 在这个降水预测任务中,怎么用LogisticRegression这类分类模型?我知道可以通过离散化把连续目标转为区间,但离散化后模型的得分能不能和线性回归的得分直接比较?
内容的提问来源于stack exchange,提问作者fraxea
相关产品推荐
相关产品推荐

