web-dev-qa-db-ja.com

Scikit学習/パンダの線形回帰と勾配降下?

もちろん、機械学習のコース https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables#Gradient_Descent_for_Multiple_Variables では、勾配降下法は収束するはずです。

私はscikit learnからの線形回帰を使用しています。勾配降下情報は提供されません。勾配降下法を使用した線形回帰を実装するためのスタックオーバーフローに関する多くの質問を見てきました。

Scikit-learnまたはpandasからの線形回帰をどのように使用しますか?OR scikit-learnまたはpandas =線形回帰出力で勾配降下情報を提供しませんか?

17
Netro

Scikit Learnは、線形回帰に対して2つのアプローチを提供します。

1)LRは閉形式解を持つ2つの分類子の1つであるため、LinearRegressionオブジェクトはscipyの通常の最小二乗ソルバーを使用します。 MLコースにもかかわらず、実際にこのモデルを学習するには、いくつかの行列を反転および乗算するだけです。

2)SGDClassifier確率的勾配降下法の実装であり、ペナルティ項を選択できる非常に一般的なものです。線形回帰を取得するには、損失をL2に、ペナルティもnone(線形回帰)またはL2(リッジ回帰)に選択します。

まれに使用されるなので、「典型的な勾配降下」はありません。損失関数を加法項に分解できる場合、確率論的アプローチはより適切に動作することが知られており(したがってSGD)、十分なメモリを節約できる場合-OLSメソッドはより速く簡単です(したがって最初のソリューション)。

36
lejlot