sklearn调用LogisticRegression出现Unknown label type: 'continuous'错误如何解决?
报错触发原因
逻辑回归(LogisticRegression)是sklearn提供的分类算法,仅支持接收离散的分类标签作为训练目标值。你当前传入的y数组全部为浮点型连续数值,属于回归任务的标签类型,与逻辑回归的算法要求不匹配,因此触发了该类型错误。
可行修复方案
- 方案1:确实需要执行分类任务的场景
先把连续型的y值转换为离散分类标签:- 如果你的
y本身就是分类值只是存储为浮点格式(例如标签值为1.0、2.0、3.0),直接转换为整数类型即可:y = y.astype(int) - 如果
y是真实连续数值,可通过分箱操作划分为多个离散类别,示例代码如下:# 示例将y值按数值区间划分为3个分类 y_discrete = pd.cut(y, bins=3, labels=[0,1,2]).astype(int) # 后续拆分数据集时使用y_discrete代替原y即可
- 如果你的
- 方案2:实际需求为预测连续数值的回归场景
直接替换为适合回归任务的模型即可,无需修改数据集。可选的回归模型及示例代码:# 可选线性回归 from sklearn.linear_model import LinearRegression model = LinearRegression() # 也可选SVR、随机森林回归等对应分类模型的回归版本 # from sklearn.svm import SVR # from sklearn.ensemble import RandomForestRegressor # model = SVR() # model = RandomForestRegressor() # 后续fit、score流程和原有逻辑完全一致 model.fit(X_train, y_train) model.score(X_test, y_test)
内容的提问来源于stack exchange,提问作者Rima Avetisyan
相关产品推荐
相关产品推荐

