1. ホーム
  2. python

[解決済み] ValueError: 未知のラベルタイプ:'unknown'

2022-01-28 21:10:47

質問

以下のコードを実行しようとしています。私はpythonもsklearnも初心者です。

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression


# data import and preparation
trainData = pd.read_csv('train.csv')
train = trainData.values
testData = pd.read_csv('test.csv')
test = testData.values
X = np.c_[train[:, 0], train[:, 2], train[:, 6:7],  train[:, 9]]
X = np.nan_to_num(X)
y = train[:, 1]
Xtest = np.c_[test[:, 0:1], test[:, 5:6],  test[:, 8]]
Xtest = np.nan_to_num(Xtest)


# model
lr = LogisticRegression()
lr.fit(X, y)

ここで、yは0と1のnp.ndarrayである。

次のように受け取ります。

ファイル "C:³³³³³.py", 行 >1174, in fit check_classification_targets(y)

ファイル "C:Anaconda3, line 172, >in check_classification_targets raise ValueError("Unknown label type: %r" % y_type)

ValueError: 不明なラベルタイプ:'unknown'

sklearnのドキュメントより。 http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.fit

y : 配列状、形状 (n_samples,) 目標値(分類ではクラスラベル、回帰では実数)

私のエラーは何ですか?

を更新しました。

y は array([0.0, 1.0, 1.0, ..., 0.0, 1.0, 0.0], dtype=object) size は (891,) である。

どのように解決するのですか?

あなたの y は、タイプ object であるため、sklearn はその型を認識できない。行を追加する y=y.astype('int') という行のすぐ後に y = train[:, 1] .