質問:
ロジスティック回帰と機能のスケーリング
matthiash
2017-07-11 18:53:35 UTC
view on stackexchange narkive permalink

私は、特徴のスケーリングがロジスティック回帰の結果に影響を与えるべきではないと信じていました。ただし、以下の例では、コメント行のコメントを外して2番目の機能をスケーリングすると、AUCが大幅に変化します(0.970から0.520)。

  from sklearn.datasets import load_breast_cancer
sklearn.linear_modelからimportLogisticRegression
sklearn.model_selectionからimporttrain_test_split
sklearnインポートメトリックから

がん= load_breast_cancer()
X = cancer.data [:、0:2]#2つの機能のみを使用する
#X [:、1] = X [:、1] * 10000#スケーリング
y = cancer.target
X_train、X_test、y_train、y_test = train_test_split(X、y、test_size = 0.33、random_state = 42)

log_reg = LogisticRegression()
log_reg.fit(X_train、y_train)

fpr、tpr、_ = metrics.roc_curve(y_test、log_reg.predict_proba(X_test)[:, 1])
auc = metrics.auc(fpr、tpr)
auc
 

これは正則化と関係があると思います(これは私が詳細に研究していないトピックです)。もしそうなら、正則化でロジスティック回帰を行うときに機能を正規化するためのベストプラクティスはありますか?また、scikit-learnでロジスティック回帰を行うときに正則化をオフにする方法はありますか?

1 回答:
Ami Tavory
2017-07-11 19:05:24 UTC
view on stackexchange narkive permalink

私は、特徴のスケーリングがロジスティック回帰の結果に影響を与えるべきではないと信じていました。ただし、以下の例では、コメント行のコメントを外して2番目の機能をスケーリングすると、AUCが大幅に変化します(0.970から0.520)...これは正則化に関係していると思います

それは良い推測です。 sklearn.linear_model.LogisticRegression のドキュメントを見ると、最初のパラメーターは次のとおりです。

penalty:str、「l1」または「l2」、デフォルト:「l2」-ペナルティで使用される基準を指定するために使用されます。 「newton-cg」、「sag」、および「lbfgs」ソルバーは、l2ペナルティのみをサポートします。

正則化により、予測子は特徴のスケールに依存します。

もしそうなら、正則化でロジスティック回帰を行うときに機能を正規化するためのベストプラクティスはありますか?

はい。 統計学習の要素の作成者はそうすることを推奨しています。 sklearn では、 sklearn.preprocessing.StandardScaler を使用します。

完璧!`sklearn.preprocessingからimportStandardScaler;X_train、X_test、y_train、y_test = train_test_split(StandardScaler()。fit_transform(X)、y、test_size = 0.33、random_state = 42) `は、0.972のAUCを提供し、以前の両方の場合よりも大きくなります。
@matthiash素晴らしい!ただし、sklearnパイプラインをよく読んでおくことを強くお勧めします。彼らはあなたがものの相互検証でもこれを正しく行うことを可能にします。パイプラインはsklearn、IMHOの要です。
@AmiTavory ESLの作成者が、機能の正規化が推奨されると述べている場所を指定できますか?
@se7entyse7en第2版では、63ページの最後から2番目の段落のセクション3.4(収縮方法)にあります。「リッジ解は入力のスケーリングでは同変ではないため、通常、解く前に入力を標準化します...」。


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...