2017-05-12 8 views
0

私はsklearn.neighbors.KNeighborsRegressorを使用している分類器で作業しています。私が使用 データの形式は次のとおりです。KNN sklearnのカテゴリラベル

  • [numeric_feature1、numeric_feature2、...、numeric_featureN] [label_to_predict]

すべての機能は、私がしたいラベルを除く数値ですKNNを使って予測する。

複数の値を持つカテゴリラベルです(例: 'w1'、 'w2'、 'w3')。

私の質問は以下のとおりです。

  • KNNは、カテゴリラベルや数値のみのものをサポートしていますか?
  • 数値でしか機能しない場合は、ラベルを正しくエンコードする方法はありますか?

PD:私はおよそsklearn.preprocessing.LabelEncoderラベルをエンコードするために知っているが、マニュアルにカテゴリ値がハッシュ可能と同等でなければならないことを述べています。私のラベルは単なる言葉であり、それらの間の論理的な距離を計算する方法はありません。

PD2:私は、カテゴリラベルで試してみたと私はエラーになっている: "/ためにサポートされていないオペランドのタイプ(S): 'STR' と 'INT'"

+0

MultilabelBinarizerを試してください –

+0

コードスニペットと完全なスタックトレースを投稿してください。ラベルはカテゴリに属する​​と考えられており、距離計算には使用されていません。 – aberger

答えて

0

オーケー、I私の誤りが見つかりました。

と思われるので、数値ラベルのみがsklearn.neighbors.KNeighborsRegressorでサポートされています。

しかし、KNNラベルのコメントでabererがどのように遠くに使われていないと言いましたか?

私のエラーは、私が代わりにラベルを使用し、カテゴリラベルを受け入れていない純粋なKNNあるクラスKNeighborsClassifier、クラスKNeighborsRegressorをウッシングたということでした。

クラスKNeighborsRegressor割り当てられたラベルは、最も近い近隣のラベルの平均に基づいて計算されるため、数値でなければなりません。

関連する問題