Python ValueError: 不明なラベル タイプ: 'continuous'
-
Python での
ValueError: Unknown label type: 'continuous'
の原因 -
Scikit の
LabelEncoder()
関数を使用してValueError: Unknown label type: 'continuous'
を修正する -
データを評価して修正する
ValueError: Unknown label type: 'continuous'
この記事では、Python の ValueError: Unknown label type: 'continuous'
エラーの原因と解決策に取り組みます。
Python での ValueError: Unknown label type: 'continuous'
の原因
Python インタープリターは、sklearn インポートされた分類子を連続ターゲット変数でトレーニングしようとすると、このエラーをスローします。
K Nearest Neighbor、デシジョン ツリー、ロジスティック回帰などの分類子は、入力変数のクラスを予測します。 クラス変数は、0 または 1
、True or False
、Pass or Fail
などの離散形式またはカテゴリ形式です。
sklearn インポートされた分類アルゴリズム、つまりロジスティック回帰が連続ターゲット変数でトレーニングされている場合、ValueError: Unknown label type:'continuous'
がスローされます。
コード:
import numpy as np
from sklearn.linear_model import LogisticRegression
input_var = np.array([[1.1, 1.2, 1.5, 1.6], [0.5, 0.9, 0.6, 0.8]])
target_var = np.array([1.4, 0.4])
classifier_logistic_regression = LogisticRegression()
classifier_logistic_regression.fit(input_var, target_var)
出力:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [6], in <module>
----> 1 lr.fit(x,y)
File c:\users\hp 840 g3\appdata\local\programs\python\python39\lib\site-packages\sklearn\linear_model\_logistic.py:1516, in LogisticRegression.fit(self, X, y, sample_weight)
1506 _dtype = [np.float64, np.float32]
1508 X, y = self._validate_data(
1509 X,
1510 y,
(...)
1514 accept_large_sparse=solver not in ["liblinear", "sag", "saga"],
1515 )
-> 1516 check_classification_targets(y)
1517 self.classes_ = np.unique(y)
1519 multi_class = _check_multi_class(self.multi_class, solver, len(self.classes_))
File c:\users\hp 840 g3\appdata\local\programs\python\python39\lib\site-packages\sklearn\utils\multiclass.py:197, in check_classification_targets(y)
189 y_type = type_of_target(y)
190 if y_type not in [
191 "binary",
192 "multiclass",
(...)
195 "multilabel-sequences",
196 ]:
--> 197 raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous'
ターゲット ラベル y としての浮動小数点値は、ロジスティック回帰分類器に渡されます。この分類器は、カテゴリカルまたは離散クラス ラベルを受け入れます。 その結果、コードは lr.fit()
関数でエラーをスローし、モデルは指定されたデータでのトレーニングを拒否します。
Scikit の LabelEncoder()
関数を使用して ValueError: Unknown label type: 'continuous'
を修正する
LabelEncoder()
関数は、連続ターゲット変数を離散またはカテゴリ ラベルにエンコードします。
分類子はこれらの値を受け入れるようになりました。 分類器は、指定されたデータでトレーニングし、出力クラスを予測します。
コード:
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import preprocessing
from sklearn import utils
input_var = np.array([[1.1, 1.2, 1.5, 1.6], [0.5, 0.9, 0.6, 0.8]])
target_var = np.array([1.4, 0.4])
predict_var = np.array([[1.3, 1.7, 1.8, 1.4], [0.2, 0.6, 0.3, 0.4]])
encoded = preprocessing.LabelEncoder()
encoded_target = encoded.fit_transform(target_var)
print(encoded_target)
classifier_logistic_regression = LogisticRegression()
classifier_logistic_regression.fit(input_var, encoded_target)
predict = classifier_logistic_regression.predict(predict_var)
print(predict)
出力:
[1 0]
[1 0]
ターゲット変数 target_var
の浮動小数点値は、LabelEncoder()
関数を使用して離散またはカテゴリ、つまり encoded_target
値にエンコードされます。
分類子はこれらの値を受け入れるようになりました。 分類子は、predict_var
で示される新しいデータのクラスを予測するようにトレーニングされます。
データを評価して修正する ValueError: Unknown label type: 'continuous'
場合によっては、データを注意深く調べて、問題が回帰の問題なのか分類の問題なのかを判断する必要があります。 住宅価格などの一部の出力変数は、分類または離散化できません。
このような場合、問題は回帰の 1つです。 回帰モデルは連続ターゲット変数を受け入れるため、ターゲット変数をエンコードする必要はありません。
コード:
import numpy as np
from sklearn.linear_model import LinearRegression
input_var = np.array([[1.1, 1.2, 1.5, 1.6], [0.5, 0.9, 0.6, 0.8]])
target_var = np.array([1.4, 0.4])
predict_var = np.array([[1.3, 1.7, 1.8, 1.4], [0.2, 0.6, 0.3, 0.4]])
linear_Regressor_model = LinearRegression()
linear_Regressor_model.fit(input_var, target_var)
predict = linear_Regressor_model.predict(predict_var)
print(predict)
出力:
[ 1.6 -0.05263158]
出力変数 target_var
の浮動小数点値は、問題が回帰であることを示しています。 モデルは、クラスではなく入力変数の値を予測する必要があります。
線形回帰モデルがトレーニングされ、新しいデータの結果値が予測されます。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません