修正方法: valueerror: 不明なラベル タイプ: 'continuous'
Python で発生する可能性のある一般的なエラーは次のとおりです。
ValueError : Unknown label type: 'continuous'
このエラーは通常、sklearnを使用してロジスティック回帰などの分類モデルを適合させようとし、応答変数に使用する値がカテゴリ値ではなく連続値である場合に発生します。
次の例は、この構文を実際に使用する方法を示しています。
エラーを再現する方法
次のコードを使用してロジスティック回帰モデルを当てはめようとしているとします。
import numpy as np
from sklearn. linear_model import LogisticRegression
#define values for predictor and response variables
x = np. array ([[2, 2, 3], [3, 4, 3], [5, 6, 6], [7, 5, 5]])
y = np. array ([0, 1.02, 1.02, 0])
#attempt to fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y)
ValueError : Unknown label type: 'continuous'
現在、応答変数の値が連続しているため、エラーが発生します。
ロジスティック回帰モデルでは、応答変数の値が次のようなカテゴリカルである必要があることを思い出してください。
- 0 または 1
- “はい、もしくは、いいえ”
- 「成功か失敗か」
現在、応答変数には0や1.02などの連続値が含まれています。
エラーを修正する方法
このエラーを解決する方法は、 sklearnのLabelEncoder()関数を使用して、応答変数の連続値をカテゴリ値に単純に変換することです。
from sklearn import preprocessing
from sklearn import utils
#convert y values to categorical values
lab = preprocessing. LabelEncoder ()
y_transformed = lab. fit_transform (y)
#view values transformed
print (y_transformed)
[0 1 1 0]
元の値はそれぞれ0または1としてエンコードされます。
これで、ロジスティック回帰モデルを適応させることができます。
#fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y_transformed)
今回は、モデルの応答値がカテゴリカルであるため、エラーは発生しません。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
修正方法: ValueError: インデックスに重複したエントリが含まれているため、再形成できません
修正方法: 型エラー: 文字列またはバイト オブジェクトが必要です
修正方法: TypeError: オブジェクト ‘numpy.float64’ は呼び出し可能ではありません