何らかの理由で、共変量の順序がscikit-learnのLogisticRegression
分類子で問題に思えます。私は9つの共変量とバイナリ出力を持っています。カラムの順番を変えてfit()
と呼んだら、predict_proba()
と呼ぶと出力が異なります。LogisticRegression scikitは、トレーニングで共変量(列)の問題を学習します。
logit_model.fit(df['column_1','column_2'],df['target'])
logit_model.predict_proba(df['column_1','column_2'])
array([[ 0.26117794, 0.73882206], ..])
これは私には意外なようだが、多分の内部に関する知識の私の不足のthats:
logit_model.fit(df['column_2','column_1'],df['target'])
logit_model.predict_proba(df['column_2','column_1'])
array([[ 0.27387109, 0.72612891] ..])
次
logit_model = LogisticRegression(C=1e9, tol=1e-15)
以下玩具の例では、異なる結果とを与えますアルゴリズムとフィット法。
私には何が欠けていますか?
EDIT:はここで完全なコードとデータである
データ:これは異なる結果を与えるのでhttps://s3-us-west-2.amazonaws.com/gjt-personal/test_model.csv
import pandas as pd
from sklearn.linear_model import LogisticRegression
df = pd.read_csv('test_model.csv',index_col=False)
columns1 =['col_1','col_2','col_3','col_4','col_5','col_6','col_7','col_8','col_9']
columns2 =['col_2','col_1','col_3','col_4','col_5','col_6','col_7','col_8','col_9']
logit_model = LogisticRegression(C=1e9, tol=1e-15)
logit_model.fit(df[columns1],df['target'])
logit_model.predict_proba(df[columns1])
logit_model.fit(df[columns2],df['target'])
logit_model.predict_proba(df[columns2])
がtol=1e-15
を行うにはその何かをオンにします。
LogisticRegression(C=1e9, tol=1e-15)
しかし、これは同じ結果をもたらします。
LogisticRegression(C=1e9)
Grr yeh thatsは私が思っていたものですが、 solver == 'sag'または 'liblinear'のとき。これは私が 'newton-cg'を使った理由です。http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html –
私は' logit_model = LogisticRegression(random_state = 0) 'で再実行するとLogisticRegression(fit_intercept = True、C = 1e9、tol = 1e-15、solver = 'newton-cg'、random_state = 0) 'を実行すると、LogisticRegression(LogisticRegression()その同じ –
その場合、newton-cgをもう使用していないので意味があります。 – Grr