もちろん、機械学習のコース 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 =線形回帰出力で勾配降下情報を提供しませんか?
Scikit Learnは、線形回帰に対して2つのアプローチを提供します。
1)LRは閉形式解を持つ2つの分類子の1つであるため、LinearRegression
オブジェクトはscipyの通常の最小二乗ソルバーを使用します。 MLコースにもかかわらず、実際にこのモデルを学習するには、いくつかの行列を反転および乗算するだけです。
2)SGDClassifier
確率的勾配降下法の実装であり、ペナルティ項を選択できる非常に一般的なものです。線形回帰を取得するには、損失をL2
に、ペナルティもnone
(線形回帰)またはL2
(リッジ回帰)に選択します。
まれに使用されるなので、「典型的な勾配降下」はありません。損失関数を加法項に分解できる場合、確率論的アプローチはより適切に動作することが知られており(したがってSGD)、十分なメモリを節約できる場合-OLSメソッドはより速く簡単です(したがって最初のソリューション)。