首页 > 解决方案 > 由于“未知标签类型'连续'”,逻辑回归不起作用?

问题描述

我正在尝试使用 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数据显然是二进制值,为什么会发生这种情况?

标签: pythonpandasscikit-learnlogistic-regression

解决方案


这里的问题是您正在y使用StandardScaler().

y是一个分类变量,用于表示样本属于该类1,或者0因此不能对其进行缩放。


推荐阅读