训练模型时遇'continuous'错误,从SVC切换至SVR需修改哪些部分?
问题解决:'continuous'错误及SVC转SVR的修改方案
一、解决'continuous'错误
你碰到的'continuous'错误,核心原因是LogisticRegression是分类模型,要求目标变量y是离散的类别值,但你的y_train/y_test是连续数值。
处理方案:
- 先明确任务类型:如果是分类任务,检查
y的数据类型,将其转为类别型(比如y_train = y_train.astype('category')),或者确认数据本身是离散标签格式;如果是回归任务,直接替换成回归类模型(比如LinearRegression、SVR等)。 - 同时排查数据是否存在异常值或格式问题,确保
y的取值符合分类任务的离散要求。
二、从SVC切换到SVR的修改要点
SVC是支持向量分类器,SVR是支持向量回归器,分别对应分类、回归任务,需修改以下关键部分:
1. 模型导入与初始化
原SVC示例代码:
from sklearn.svm import SVC clf_svc = SVC()
修改为SVR:
from sklearn.svm import SVR clf_svr = SVR() # 可按需调整核函数、正则化参数,比如SVR(kernel='rbf', C=1.0)
2. 评估指标替换
分类任务用的accuracy_score、f1_score不适合回归任务,需替换为回归类指标:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score # 训练预测后计算指标 pred = clf_svr.predict(X_test) mae = mean_absolute_error(y_test, pred) mse = mean_squared_error(y_test, pred) r2 = r2_score(y_test, pred) print(f"SVR MAE: {mae}") print(f"SVR MSE: {mse}") print(f"SVR R² Score: {r2}")
3. 任务逻辑确认
确保你的任务确实是回归任务(目标变量为连续值),如果是分类任务,不要切换到SVR,否则会导致模型逻辑错误。
内容的提问来源于stack exchange,提问作者Isabel Rosa Das Neves
相关产品推荐
相关产品推荐

