Récemment, un projet dans lequel j'ai participé a utilisé un perceptron linéaire pour la régression multiple (21 prédicteurs). Il a utilisé GD stochastique. En quoi est-ce différent de la régression linéaire OLS?
regression
machine-learning
Simon Kuang
la source
la source
Perceptron
classe à laquelle vous liez est destinée à un classifieur (sortie binaire) plutôt qu'à un régresseur (sortie continue). Est-ce bien le code que vous avez utilisé? Si c'est le cas, c'est la différence. :)SGDRegressor
; serait-ce équivalent à une régression linéaire?SGDRegressor(loss='squared_loss', penalty='none')
, c'est OLS.Réponses:
La
Perceptron
classe de scikit-learn (équivalente àSGDClassifier(loss="perceptron", penalty=None, learning_rate="constant", eta0=1)
) utilise la fonction objectif suivante:La régression des moindres carrés, en revanche, utilise Ici, peut être n'importe quel réel; vous pouvez lui donner des cibles de classification dans si vous voulez, mais ça ne vous donnera pas un très bon modèle. Vous pouvez optimiser cela avec si vous le souhaitez.
SGDRegressor(loss="squared_loss", penalty=None)
Les deux définissent des modèles fondamentalement différents: le perceptron prédit une étiquette de classe binaire avec , tandis que la régression linéaire prédit une valeur réelle avec . Cette réponse explique pourquoi essayer de résoudre un problème de classification avec un algorithme de régression peut être problématique.sign(wTxi) wTxi
la source