2016-08-12 12 views
-4

現在、私はいくつかのデータを分析する必要があります(以下の表を参照)。私はデータに基づいていくつかの予測値を取得したい。だから、私は(scikit-learnで)データ分析のアルゴリズムを検索しますが、私はアルゴリズムを見つけることができません。私はバイナリ(0や1など)として予測値を取得したいので、Linear、SVNなどのアルゴリズムは値を整数値(平均値など)として予測します。以下の表をより詳しく説明します。分類の2進値を予測する方法

[訓練 - データ]

age | gender | education | result 
45 | 1 |  9  | Y 
23 | 2 |  12 | Y 
27 | 2 |  9  | N 
31 | 1 |  11 | Y 
45 | 1 |  9  | N 

[予測 - データ]

age | gender | education | result 
21 | 1 |  12 | ? 
32 | 2 |  11 | ? 
26 | 1 |  11 | ? 
54 | 1 |  9  | ? 
23 | 2 |  13 | ? 
私はちょうどYまたは私はscikitは、学ぶ検索N.( http://scikit-learn.org/stable/)として予測値を取得したい

、私は最高のアルゴリズムを知らない。 誰がそれを知っていますか?ありがとう!

+2

あなたのターゲット変数 'result'はバイナリ値を予測するので、バイナリ分類の問題です。 'sklearn'にあるさまざまな分類アルゴリズムを検索し、目的に合ったものを見つけることができます。 –

+1

ああ、わかりました。ありがとうございます。良い一日を。 – spritecodej

答えて

3

sklearnはall of theseを分類の点でサポートしています。

解釈可能なモデルを作成することを考えているのであれば、LogisticRegressionの方がいいかもしれません。

タイプ:logit(Result) = b0+b1*age+b2*gender+b3*educationのモデルを作成します。それはbの係数をあなたに見積もり、あなたはそれを次のように解釈することができます:年齢が1増加し、他のすべてを固定しておけば、結果はexp(b1)だけ増加します。詳細はhereを参照してください。

さらに、どれだけ頑強であるかをテストするための統計的なテストがあります。それは非常にクールなモデルであり、計量経済学で広く使用されていますが、リニアリティを前提としています。たとえば、あなたのresult変数(何でも構いません)は、若年時よりも高齢時に増加する可能性があります。だから、あなたはあなたの年齢をグループにまとめたいと思うかもしれません。さらに、非線形性のために、いくつかの要因をone-hot encodingにすることができます。

解釈しやすいモデルのほうが、DecisionTreeです。このようなツリーの例については、リンクを参照してください。

解釈能力が問題にならない場合は、またはnearest neighborsまたはneural networkのようなものがあります。通常、データ科学者はnested cross-validationを使用して一連のパラメータを持つモデルを試します。外側のクロスバリデーションは、内側のクロスバリデーションでハイパーパラメータをテストすることで、さまざまなモデルをテストします。

ああ - 言い逃れました。デシジョンツリーに関しては、特に超パラメータを細かくチューニングする必要があります(他のパラメータも微調整してください)。いくつかのアンサンブルを試すこともできます。アンサンブルとは、たくさんのモデルを作成した後、すべてのモデルを民主的に予測することです。彼らは通常、多くの精度を向上させます。デシジョンツリーの場合、2つの非常にクールなアンサンブルはRandomForestGradient Boosting Treesです。

明確にしたいことが他にもある場合は教えてください。将来的にも、これまでに何を試しているのか、そして2.あなたがしたいことを正確に伝えてください。分類は巨大なのデータ科学分野です。これはあなたが提供した情報を使って私ができることです。 :)

関連する問題