2015-12-26 119 views
10

當然機器學習課程https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables#Gradient_Descent_for_Multiple_Variables,它說梯度下降應該收斂。Scikit的線性迴歸和梯度下降學習/熊貓?

我使用scikit的線性迴歸學習。它不提供漸變下降信息。我已經看到了很多關於使用梯度下降實現線性迴歸的stackoverflow問題。

我們如何在現實世界中使用scikit-learn或pandas的線性迴歸? 或 爲什麼scikit-learn或pandas在線性迴歸輸出中不提供梯度下降信息?

+1

一個註釋是LogisticRegression,它提供了一個名爲'solver'的參數,您可以在其中選擇使用哪個優化器。如果你設置了'verbose = 1',它會顯示優化器的調試信息。 http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression –

回答

24

Scikit學習爲您提供兩種方法來線性迴歸:

1)LinearRegression對象使用普通最小二乘解算器從SciPy的,因爲LR是具有閉合形式解兩個分類器中的一個。儘管ML課程 - 你實際上可以通過反轉和乘以一些矩陣來學習這個模型。

2)SGDClassifier這是一個實施隨機梯度下降,非常通用的,你可以選擇你的罰款條款。爲了獲得線性迴歸你選擇的損失是L2和處罰也none(線性迴歸)或L2(嶺迴歸)

沒有「典型的梯度下降」,因爲它是在實踐中很少使用。如果您可以將損失函數分解爲累加項,那麼已知隨機方法表現更好(因此SGD),並且如果您可以留出足夠的內存 - OLS方法更快更簡單(因此是第一種解決方案)。

+0

謝謝這有助於。 – Netro

相關問題