現時点では、非常に簡単な答えを出す時間しかありませんが、後で詳しく説明します。
あなたがしたいのは、データのラベルを見つけたいので、クラスタリングです。(分類とは対照的に、少なくとも一部のデータにラベルを付け、残りにラベルを付けたい場合)。
ユーザーに対してクラスタリングを実行するには、それらを抽象空間のある種のポイントとして持つ必要があります。次に、ポイント間の距離を測定し、「近い」ポイントは「類似」であると言い、そのスペースでの位置に応じてラベルを付けます。
データをユーザープロファイルのようなものに変換する必要があります。つまり、ユーザーIDの後に、このユーザーの特徴を表す数字のベクトルが続きます。あなたの場合、各機能は「ウェブサイトのカテゴリ」または「製品のカテゴリ」であり、数字はその機能に費やされた金額です。または、当然のことながら、機能はWebと製品の組み合わせにすることもできます。
例として、たった3つの機能を持つユーザープロファイルを想像してみましょう。
- 「技術的な」ウェブに費やしたドル、
- 「ファッション」製品に費やしたドル
- 「家族向け」ウェブ(知っている人)での「攻撃的な」ビデオゲームに費やした金額。
それらのプロファイルを作成するには、所有している「カテゴリ」と「キーワード」を、あまりにも豊富に、関連すると思われる機能にマッピングする必要があります。見トピックモデリングまたは意味的な類似性そうします。マップが作成されると、キーワード「ガジェット」、「エレクトロニクス」、「プログラミング」、およびX個のその他のキーワードを含むWebに費やされたすべての金額をすべて、最初の機能に集約する必要があります。等々。
機能を「課す」ことを恐れないでください!ユーザーをクラスタ化したら、それらを調整する必要があり、場合によっては完全に変更する必要があります。
ユーザープロファイルを作成したら、k-meansまたはその他の興味深いと思われるものを使用してそれらをクラスター化してください。どの手法を使用する場合でも、各クラスターの「代表的な」ポイントを取得することに関心があります。これは通常、そのクラスター内のポイントの幾何学的な「中心」です。
それらの「代表的な」点をプロットし、それらが他のクラスターと比較する方法もプロットします。ここではレーダーチャートを使用すると非常に便利です。顕著な特徴(代表者の中で非常にマークされ、他のクラスターとの比較でも非常に目立つもの)がある場合はいつでも、キャッチーなフレーズ(「オタク」、「ファッショニスタ」)でクラスターにラベルを付けるのに役立つ候補です。 、「積極的なママ」...)。
クラスタリングの問題は未解決の問題であるため、「正しい」解決策はありません。そして、私の答えはすでにかなり長いと思います。プロファイルの正規化と外れ値のフィルタリングについても確認してください。