我正在使用 sklearn 进行分类预测模型,并不断收到相同的错误“支持的目标类型是:('二元','多类')

问题描述 投票:0回答:1

我使用以下分类模型: 线性回归 逻辑回归 K邻居分类器 决策树分类器

我正在尝试制作一些预测模型,每次我尝试使用数据集中除性别属性之外的任何内容时,我都会收到此错误“支持的目标类型是:('二进制','多类')。改为'连续'。 ” 我的大部分数据都是连续的,但我确信我做错了其他事情 我举一些例子:

from sklearn.linear_model import LinearRegression,LogisticRegression
import seaborn
import pandas

data = pandas.read_pickle("processed/processeddata.pkl.gz")

data  = data[data["visit"] == 1]
x = data. Drop(["ID","visit","MMSE",],axis = 1)
y= data.MMSE

#both these below give the same error
classifier = LogisticRegression(multi_class="ovr")
classifier = KNeighborsClassifier()

imputer = impute.SimpleImputer()
scaler = preprocessing.StandardScaler()


p = pipeline.make_pipeline(imputer,scaler,classifier)
cv = model_selection.StratifiedKFold(5,shuffle=True,random_state = SEED)

#this is the line of the error 
scores = model_selection.cross_val_score(p, x, y,scoring="f1_macro",cv=cv)


X =
      delay  sex  age  YOE  SES  CDR    eTIV   nWBV      ASF
0        0    1   87   14  2.0  0.0  1987.0  0.696    0.883
1        0    1   75   12  2.0  1.0  1678.0  0.736    1.046
2        0    0   88   18  3.0  0.0  1215.0  0.710    1.444
3        0    1   80   12  4.0  0.0  1689.0  0.712    1.039
4        0    1   71   16  2.0  1.0  1357.0  0.748    1.293
..     ...  ...  ...  ...  ...  ...     ...    ...      ...
145      0    1   73   12  2.0  1.0  1661.0  0.698    1.056
146      0    0   66   13  2.0  0.0  1495.0  0.746    1.174
147      0    0   72   16  3.0  1.0  1354.0  0.733    1.296
148      0    1   80   16  1.0  1.0  1704.0  0.711  103.000

y = 
0      0.884615
1      0.730769
2      0.923077
3      0.923077
4      0.923077
         ...
145    0.730769
146    1.000000
147    0.769231
148    0.923077

我知道这是连续数据,但我的教授将其放在逻辑回归页面上
says continuous attributes

这些分类不是为了针对连续数据而构建的,还是我做错了什么,我花了几个小时才弄清楚。

我们正在转向一些更复杂的模型: 供给向量模型 随机森林 梯度提升分类器 堆叠分类器 投票分类器

其中任何一个都可以让我瞄准连续数据,或者不会向我抛出该错误,因为我确信更多的人希望在二进制和分类数据上以类似的数量进行预测。

如果有人能给我更好的理解或推动我走向正确的方向,谢谢。

我尝试过使用所有模型,但它们不适用于任何连续属性, 性别和同样是绝对的 CDR 已经起作用了。

pandas scikit-learn classification sklearn-pandas continuous
1个回答
0
投票

在上面的数据框中,性别是一个分类变量,要预测使用 LogisticRegression 和 KNeighborsClassifier 等分类模型是否有意义。要评估模型性能,您可以使用 sklearn.metrics auc 或 scipy.stats ks_2samp。

其他字段似乎是度量。如果您想预测这些,您可以使用线性回归。为了评估模型性能,您可能需要 R**2。逻辑回归不能直接用于这些。

© www.soinside.com 2019 - 2024. All rights reserved.