2017-06-17 15 views
0

私はpython(とR)と単語ベクトルに新しいので、これを視覚化する方法を学ぶ次のステップを達成する方法について固執しました。私はPythonで作業しようとしていますが、これをRにも適用することは可能です。私はどこまで来たのか、どこに行くのかを簡単に説明します。単語ベクトルのクラスタリングとプロット - R

私はそのユーザーに関連付けられた10の映画のリストを受け取るユーザーのリストを持っています。私はリストを取得し、出力csvファイルを作成し、性別、年齢、場所などのユーザー属性を一致させました。ジャンルや年のように映画の属性も抽出して作成しました。

次に、映画のリストが各ユーザーとどれほど似ているかを確認するためにユーザーをクラスタリングしようとしています。私がこれをやったやり方は、各映画のジャンルを抽出してリストに入れることです。したがって、コメディ、ロマンスを好むが、「ホラー」、「犯罪」を好むユーザー3と似ていない別のユーザー2と同様のユーザー1コメディ、ドラマ、ロマンチックコメディのリストを持つユーザーは、 'スリラー'。私はこれらのジャンルに基づいて約5-6のクラスターを想像しています(「アクション」、「コメディー」、「ドラマ」、「ファミリー」、「ホラー」のように)私がそれをプロットすると、 1つのクラスタ(Comedyクラスタの周り)にユーザ1と2のクラスタ、別の(ホラークラスタに近い)ユーザ3、などがあります。それで、年齢や性別などに応じて、類似の映画のような同じ年齢のグループを見るためにプロットに色を付けることができますか?または、「アクション」ムービークラスターに近い男性が増え、「ロマンス」に向かう女性が増えますか?

それは私が立ち往生している場所です。私はこれをグラフにしようとsckitを見てきましたが、どこに行くのか分かりません。リストの長さも異なっていて、他のユーザーと比較してユーザーのコサインの類似点を得ることができました。私はユーザー番号のデータフレームとジャンルのリストを2番目の列に作成しました。私は自分の列になるように区切られたユーザーとジャンルでcsvファイルを作成しました。この情報を今どのように取って、これをベクトル空間でクラスター化またはプロットするのですか?以下は、私が構築し、さまざまなユーザー間のコサインの類似度を計算するために使用できたデータフレームです。

ID Genre 
0 1 ['Adventure', ""Children's"", 'Drama', 'Comedy', 'Musical', 'Horror', 'Drama', 'Drama', 'Mystery', 'Documentary', 'Comedy', 'Drama', 'Romance', 'Drama', 'Comedy', 'Romance']" 
1 2 ['Horror', 'Mystery', 'Thriller', 'Documentary', 'Action', 'Comedy', 'Musical', 'Sci-Fi', 'Horror', 'Sci-Fi', 'Thriller', 'Adventure', 'Animation', ""Children's"", 'Musical', 'Romance', 'Documentary', 'Action', 'Adventure', 'Western', 'Comedy', 'Drama', 'Comedy']" 
2 3 ['Documentary', 'Drama', 'Thriller', 'Documentary', 'Comedy', 'Horror', 'Drama', 'Romance', 'Documentary', 'Comedy', 'Drama', 'Romance', 'Action', 'Adventure', 'Sci-Fi', 'War', 'Drama'] 
3 4 ['Drama', 'War', 'Drama', 'Drama', 'Romance', 'Action', 'Thriller', 'Comedy', 'Horror', 'Horror', 'Comedy', 'Musical', 'Crime', 'Drama', 'Horror', 'Comedy', 'Horror'] 
4 5 ['Documentary', 'Drama', 'Documentary', 'Comedy', 'Romance', 'Drama', 'Horror', 'Comedy', 'Drama', 'Animation', ""Children's"", 'Action', 'Drama', 'Drama', 'Comedy', 'Romance']" 
5 6 ['Horror', 'Documentary', 'Comedy', 'Horror', 'Drama', 'Drama', 'Drama', 'Action', 'Comedy', 'Comedy', 'Horror'] 
... 

答えて

1

あなたが本当にしたいことはわかりませんが、感情分析があなたの目標である場合、私はあなたにこれを行うよう助言します。あなたは今の数値に映画のジャンルを変換することができます

a = ['Horror', 'Mystery', 'Thriller', 'Documentary', 'Action', 'Comedy', 'Musical', 'Sci-Fi', 'Horror', 'Sci-Fi', 'Thriller', 'Adventure', 'Animation', 'Musical', 'Romance', 'Documentary', 'Action', 'Adventure', 'Western', 'Comedy', 'Drama', 'Comedy'] 

>>> b= set(a) 

>>> b 
{'Action', 'Romance', 'Documentary', 'Sci-Fi', 'Adventure', 'Musical', 'Animation', 'Thriller', 'Western', 'Drama', 'Comedy', 'Horror', 'Mystery'} 

、その後例えば

'Action' = 1 

あなたがデータをクラスタ化することができますが、アルゴリズムの選択ではないので、simple.Youをk-means法を使用することができ、あいまいですCは他の多くのアルゴリズムの一部を意味します。これについてもっと読むことができますhere

関連する問題