2017-11-02 13 views
0

私が過去に機械学習をしたとき、私は本質的に観測ごとに1つの行を持っていました。そのような場合、私はデータをラインごとにアルゴリズムに入力したばかりです。私の現在のデータでは、本質的に、1つの名前に多くのカウントがあるインデックスです。私の問題は1年で男性と女性の両方に関連する名前を持つことができ、それを数えて重み付けする必要があります(私は名前に基づいて性別分類器を構築しています)。マシンラーニングでカウント/数量を使用してウェイトを追加するにはどうすればよいですか?

enter image description here

多分それは簡単で、私はそれをしないのですが、個々の行にモデルを拡大せずに読み込むための簡単な方法があります:私は私のデータがどのように見えるかの例として、以下の画像が含まれていますこれを機械学習アルゴリズムに組み込み、Count列を使用して重みを表します。私は主に、SciKit学習ツールの使用を計画しています。

答えて

0

私は単にpandas groupby関数を使用し、頻度+性別を列として持つと思います。あなたが始めるために参照することができ、以下のコード:

yourDataFrame = pd.DataFrame(colums=["Name","Gender","Age","SourceFile"]) 
yourDataFrame["Count"] = 1 
dummyDf = yourDataFame.groupby(["Name","Gender"]).count("Count") 

今、あなたはカウント/重みのためyourDataFrameとdummydfを組み合わせたシンプルなルックアップ関数を作ることができます。

+0

はい、そうです。私はより良い理解のためにそれを書いた。 –

+0

私は既に年の頻度を持っています。それは既存のカウント機能です。私の質問は、これを分類アルゴリズムに供給してきたときにカウントを無視しているように見えるときです。私は、Count列に追加の重みを与えるアルゴリズムを取得しようとしています。 – Matt

+0

@Mattあなたは2つの列を組み合わせて、モデルの別の機能にして、頻度に反比例する** class_weight **パラメータを使うことができます。モデルの重みを明示的に定義することができます。 –

関連する問題