2016-05-10 4 views
0

ロジスティック回帰を使って映画の興行を予測します。 俳優や監督を含む列車のデータがあります。これは私のデータです:いくつかの文字列変数sklearnの線形回帰を適用する方法

Director1|Actor1|300 million 
Director2|Actor2|500 million 

私は、ディレクターとアクターを整数でエンコードします。 X={[1,1],[2,2]} y=[300,500]fit(X,y) がその作業を行うことを意味

1|1|300 million 
2|2|300 million 

+0

スカラーを予測しようとすると線形回帰かそれ以外のものでなければなりません。ロジスティック回帰は、y_hatがタイプAまたはBであることを示す予測子の集合を分類することです –

+0

movie_revenueを使用してDirectorがDirector1かDirector2かを予測する可能性があります –

+0

はい、線形回帰です! – KengoTokukawa

答えて

6

このような線形回帰では、カテゴリ変数を使用することはできません。線形回帰は、数値変数のようなすべての変数を扱います。したがって、Director1を1、Director2を2と記述すると、線形回帰はそのコーディングスキームに基づいて関係を見つけようとします。 Director2はDirector1の2倍の大きさであると仮定します。実際には、それらの数字は何も意味しません。あなたは143と9879としてそれらをコードするかもしれませんが、違いはありません。彼らは数値的な意味を持っていません。線形回帰がそれらを正しく扱うためには、ダミー変数を使用する必要があります。

ダミー変数では、すべてのカテゴリレベルの変数があります。たとえば、3人の取締役がいる場合、3つの変数、D1、D2、D3があります。対応するムービーがDirector1によって指示された場合、D1は値1を、それ以外の場合は0を有する。映画はDirector2によって指示された場合、D2は、値1を持つことになり、そうでなければ0 ...値D2 D1 D2 D3 D1 D2のセットをので、あなたのダミーvariblesは次のようになります。線形回帰で

D1 D2 D3 
D2 0 1 0 
D1 1 0 0 
D2 0 1 0 
D3 0 0 1 
D1 1 0 0 
D2 0 1 0 

、多重共線性を避けるために、これらの変数のうちn-1だけを使用します。nはカテゴリの数(この例では取締役の数)です。ディレクターの1人がベースとして選択され、回帰モデルの定数で表されます。どちらが問題ではありません。たとえば、D3を除外すると、D1=0D2=0の場合、Director3によって監督された映画を知ることができます。 D3=1を指定する必要はありません。

scikit-learnでは、この変換はOneHotEncoderで行われます。例はscikit-learnのものですdocumentation

あなたには、性別、地域、ブラウザの3つのカテゴリ変数があります。性別は2レベル:["male", "female"]、地域は3レベル:["from Europe", "from US", "from Asia"]、ブラウザのレベルは["uses Firefox", "uses Chrome", "uses Safari", "uses Internet Explorer"]です。それらがゼロベースの数でコード化されていると仮定してください。したがって、[0, 1, 2]は、Safariを使用している米国の男性を意味します。

>>> enc = preprocessing.OneHotEncoder() 
>>> enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) 
OneHotEncoder(categorical_features='all', dtype=<... 'float'>, 
     handle_unknown='error', n_values='auto', sparse=True) 
>>> enc.transform([[0, 1, 3]]).toarray() 
array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]]) 

enc.fitとすると、scikit-learnは各変数のレベル数を表します。 [0、1、3]のような観測の場合、enc.transformを呼び出すと、ダミー変数が表示されます。結果として得られる配列の長さは2 + 3 + 4 = 9であることに注意してください。性別の最初の2つ(男性の場合は最初の1つ)、次の3つは領域のように続きます。

+0

映画がDirector 1とDirector 2の両方によって監督され、結果が1,1,0になったらどうなりますか?または0,1,0,1,0,0? – KengoTokukawa

+0

唯一の観測であるので、1、1,0となります。しかし、ここでカテゴリは相互に排他的ではないので、ここでは「n-1」ということは適用されません。 3つすべてを回帰に含めます。 – ayhan

+0

「fit」メソッドが必要なのはなぜですか? – LKM