python - 由于“未知标签类型'连续'”,逻辑回归不起作用?
问题描述
我正在尝试使用 Sklearn 实现逻辑回归。目前我有一个数据框,它由 12 个输入变量和 1 个输出变量组成。
输出数据帧是二进制值,而其余 12 个变量不一定如此。
示例输入数据的结构。
#PseudoCode (Y and X are pandas dataframes)
Y = 0, 1, 0, 1, 1, 1 # Output data
X = A1: 1, 1, 2, 1, 2, 2 #Input Data
B2: 45, 23, 12, 56, 23, 86
...
L12: 4.2, 3.2, 1.2, 2.3, 2.3, 9.9
然后完成以下操作:
X = X.astype(int) # to make sure that the data is actually in int format.
Y = Y.astype(int)
X_train, X_test, y_train, y_test = train_test_split(X,Y,test_size=.10, random_state = 42)
xscaler = StandardScaler()
yscaler = StandardScaler()
pipe = Pipeline([('scaler', xscaler), ('logit', LogisticRegression())])
model = TransformedTargetRegressor(regressor=pipe, transformer=yscaler)
model.fit(X_train,y_train)
但是,这会抛出以下内容:
ValueError: Unknown label type: 'continuous'
即使Y
数据显然是二进制值,为什么会发生这种情况?
解决方案
这里的问题是您正在y
使用StandardScaler()
.
y
是一个分类变量,用于表示样本属于该类1
,或者0
因此不能对其进行缩放。
推荐阅读
- python - 在代码完成编辑文本文件后,我不断收到错误,IndexError: list assignment index out of range
- python - 按下按钮以获取标签文本
- nginx - 我可以将 nginx 反向代理配置为不修改特定请求吗?
- sql - 如何使用 SQL SELECT 填写缺失的日期并保持运行总和?
- python - 为什么 Dask 使用 from_pandas 计算数据帧比直接使用 dask 读取更快?
- c++ - 在 While 循环中对对象进行多线程重用
- xml - xmlstarlet foreach 节点更新值
- generics - kotlin:typealias 类型参数上不允许有边界
- performance - Gatling 报告 req/s 是否包括停顿和步速?
- reactjs - 我们如何在 React.js 中覆盖或扩展组件