-1
votes

Qu'est-ce que la descente de gradient de descente.Des dégradé peut donner un meilleur résultat que l'algorithme de régression linéaire Sklearn

Pourquoi nous utilisons la descente de gradient parce que Sklearn peut trouver automatiquement la meilleure ligne d'ajustement pour nos données.Quelle est le but de la descente de gradient.


0 commentaires

4 Réponses :


1
votes

https://scikit-learn.org/stable/modules/sgd.html

Si vous souhaitez utiliser une approche de descente de gradient, vous devez envisager d'utiliser SDLLASSIFIER à Sklearn, car Sklearn donne deux approches à l'utilisation de la régression linéaire. La première est la classe linéaire de la ligne linéaire et utilise les moindres carrés ordinaires de Scipey L'autre est la classe SDRCLASSIFIER qui est une mise en œuvre de l'algorithme de descente de gradient. Donc, pour répondre à votre question si vous utilisez SDLCLASSIFIER à Sklearn, vous utilisez une implémentation d'algorithme de descente de gradient derrière la scène.


3 commentaires

Basilic, ce qui est le meilleur modèle de régression linéaire ou en dollars sdllassifiant.Qui vous rend plus performant.


@Manindersingh: Je pense que cela dépend parfois, mais généralement, la régression linéaire avec descente de gradient est meilleure que les moindres carrés ordinaires (OLS). L'idée est que si la tâche est simple et peut être directement résolue à l'aide de OLS, l'utilisation de OLS est meilleure, mais si la tâche est plus complexe, l'utilisation d'une descente de gradient est meilleure car il s'agit d'un processus itératif de trouver la meilleure solution pour un problème de régression .


@ManindersingHH OLS n'est pas un processus itératif, il utilise des calculs multivariés pour résoudre une équation, ce qui est inefficace si vous avez un gros jeu de données et échouera s'il n'ya pas de solution mathématiquement sans solution pour le probelm, la descente de gradient de contraste est la voie à suivre si Vous avez un gros jeu de données (car c'est un processus itératif de recherche d'une solution) et même s'il ya mathématiquement aucune solution pour le probelm, il recherchera un minimum local que vous pouvez considérer comme la meilleure façon de se rapprocher d'une solution. Pour le problème de la régression



0
votes

de Wikipedia elle-même

La descente de gradient est un algorithme d'optimisation itératif de premier ordre pour Trouver le minimum d'une fonction. Trouver un minimum local d'un fonction à l'aide de descente de gradient, on prend des mesures proportionnelles à la négatif du gradient (ou un gradient approximatif) de la fonction à le point actuel.

La descente de gradient n'est qu'une autre approche utilisée pour la convergence de la probabilité maximisant. Il existe d'autres alternatives avec leurs limitations.

Le modèle linéarregression de Sklearn est juste une enveloppe de fantaisie du solveur des moindres carrés (sciped.linalg.lstsq) intégrée à Scipy.


0 commentaires

0
votes

Une descente de gradient n'est pas beaucoup plus que de suivre la pente localement.

 Entrez la description de l'image ici

Si vous utilisez une descente de gradient, vous prenez en compte la valeur de la valeur de la fonction que vous essayez de minimiser les modifications apportées à un ou plusieurs paramètres. Vous pouvez utiliser ces informations pour donner une meilleure idée de quelles valeurs de paramètres sont susceptibles de fonctionner mieux pour minimiser la fonction à l'étape suivante.

the image ici est en 2D (donc vous ne feriez donc que 2 paramètres déterminant la valeur de votre fonction pour minimiser). Cependant, il reste toujours conceptuellement la même chose (juste avec des mathématiques plus difficiles dans les coulisses) avec autant de paramètres que vous souhaitez utiliser.

Donc, une descente de gradient signifie essentiellement de prendre votre vélo et de laisser la pente locale vous amener au minimum local le plus proche.


0 commentaires

0
votes

Pour répondre directement à votre question: descente de gradient peut obtenir une solution pour de nombreux modèles - de la régression logistique aux réseaux de neurones, appelés percepteurs multicouches de Sklearn (MLP).

Si vous ne résolvez que pour un modèle linéaire simple, vous utilisez une descente de gradient (comme à la réponse de Basilisk) a vraiment des avantages mineurs au coût de la performance (plus flexible, mais plus lent). Je l'ai utilisé quand j'avais besoin de plus de flexibilité.

Outre le point, notez que cette question ne concerne pas la programmation, il s'agit d'un apprentissage de la machine et devrait aller à croix validée au lieu de Pile Overflow - bien que vous souhaitiez aussi commencer par les fondamentaux (pensez-y - qu'entendons-nous par «la meilleure ligne d'ajustement»?).


0 commentaires