【发布时间】:2021-06-04 01:17:26
【问题描述】:
我已经建立了逻辑回归模型并使用 scikit 管道进行了预处理。我进行了训练和测试,一切都很好,但是当我尝试根据有效数据校准我的模型时,calib_clf.fit(Valid, labelValid) 出现错误@
ValueError: could not convert string to float: 'OLIFE'
这是我的代码:
column_trans = make_column_transformer(
(OneHotEncoder(), ['PRODUCT_LINE_ID','SMOKING_STATUS','gender','Cover_Type']),
remainder = StandardScaler()
)
column_trans.fit_transform(train)
# Create a pipeline that scales the data then trains a support vector classifier
logreg = LogisticRegression()
model_pipeline = make_pipeline(column_trans, logreg)
# Fitting the model pipeline
model_pipeline.fit(train,labelTrain)
# Testing the model pipeline on new data/test data
predictions = model_pipeline.predict_proba(test)[:,1]
calib_clf = CalibratedClassifierCV(model_pipeline, method="sigmoid", cv="prefit")
calib_clf.fit(Valid, labelValid)
【问题讨论】:
-
变量Valid和label(Valid)在你执行
calib_clf.fit(Valid, labelValid)之前是什么样子的? -
问题在于您的设置和Valid、labelValid 中的数据。您是否正在使用交叉验证寻找最佳参数。尝试使用 GridSearchCV 找到最佳参数
-
您能否发布指向您的 csv 数据的链接。 scikit-learn.org/stable/modules/generated/… 参见文档以了解 prefit。你为什么选择这个选项
标签: python python-3.x machine-learning scikit-learn logistic-regression