0

さまざまな分類アルゴリズムの有効性を比較するプロジェクトを行っていますが、イライラする点で立ち往生しています。データは次の場所にあります: http://archive.ics.uci.edu/ml/datasets/Adult分類の問題は、国勢調査のデータに基づいて年収が 5 万を超えるかどうかです。

2 つのエントリの例は次のとおりです。

45歳、私立、98092、高卒、9歳、既婚、社会人配偶者、営業、夫、白人、男性、0、0、60、アメリカ合衆国、<=50K

50歳、非営利の自営業者、386397歳、学士号、13歳、既婚者、営業職、夫、白人、男性、0歳、0歳、60歳、アメリカ合衆国、<=50K

ユークリッド距離を使用してベクトル間の差を計算することには慣れていますが、連続属性と離散属性を組み合わせて使用​​する方法がわかりません。意味のある方法で 2 つのベクトルの違いを表す効果的な方法はありますか? 3 番目の属性のような大きな値 (要因に基づいてデータ セットを抽出した人々によって計算された重みであり、同様の重みは同様の属性を持つ必要があります) とその違いが意味を維持できるかについて頭を悩ませています。男性や女性などの個別の特徴から、方法を正しく理解していれば、ユークリッド距離は 1 にすぎません。一部のカテゴリは削除できると確信していますが、分類に大きく影響するものは削除したくありません。私'

4

3 に答える 3

1

もちろん、ユークリッド距離はさまざまな方法で拡張できます。最も単純な拡張は、次のルールです。

距離 = 一致する場合はその座標で 0、そうでない場合は 1

課題は、距離の概念を k-NN フォローアップに「適切」にすることです。場合によっては (教育など)、教育 (離散変数) を教育年数などの連続変数にマッピングするのが最善だと思います。したがって、「HS-grad」を 12 に、「Bachelors」を 16 に、などのようにマップする関数を作成する必要があります。

それを超えて、複数の異なる次元間の「距離」の概念が明確に定義されていないため、k-NN を直接使用してもうまくいきません。これらのディメンションのいくつかを捨てるか、別の重み付けをしたほうがよいと思います。データセットの 3 番目の数値 (98092 など) が何を意味するのかわかりませんが、単純なユークリッド距離を使用すると、年齢などの他の次元と比較して、これは非常に過大評価されます。

私は機械学習の専門家ではありませんが、個人的には、いくつかの幅広い人口統計 (年齢、教育、婚姻状況など) を選択し、トリッキー/「ノイズの多い」カテゴリを無視する、次元を減らしたデータセットで k-NN を開始するように誘惑されます。 .

于 2013-11-25T21:02:28.163 に答える
0

カテゴリ変数を 1-of-n バイナリ変数としてコード化する必要があります (変数の n 個の選択肢、およびそれらの変数のうち 1 つだけがアクティブです)。次に、特徴を標準化します。各特徴について、その平均を引き、標準偏差で割ります。または範囲 0-1 に正規化します。完璧ではありませんが、これで少なくとも寸法は同等になります。

于 2013-11-26T10:01:53.377 に答える