You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:28:15