J'essaie de comparer la complexité de calcul / la vitesse d'estimation de trois groupes de méthodes de régression linéaire comme distingué dans Hastie et al. "Elements of Statistical Learning" (2e éd.), Chapitre 3:
- Sélection de sous-ensemble
- Méthodes de retrait
- Méthodes utilisant des directions d'entrée dérivées (PCR, PLS)
La comparaison peut être très approximative, juste pour donner une idée. Je suppose que les réponses peuvent dépendre de la dimension du problème et de la façon dont cela correspond à l'architecture informatique, donc pour un exemple concret, on peut considérer un échantillon de 500 et 50 régresseurs candidats. Je suis surtout intéressé par la motivation derrière la complexité de calcul / la vitesse d'estimation, mais pas par le temps qu'il faudrait à un certain processeur pour l'exemple donné.
Réponses:
Groupe 1 :2K K O ( K2n ) n O ( 2KK2n )
La complexité / vitesse du groupe 1. ne semble pas trop difficile à déterminer si des algorithmes de force brute sont utilisés (bien qu'il puisse y avoir des alternatives plus efficaces telles que l'algorithme "sauts et limites"). Par exemple, une sélection complète de sous-ensembles nécessitera régressions pour être ajustée étant donné un pool de fonctionnalités candidates. Un ajustement OLS d'une régression linéaire a la complexité de (selon ce post ) où est la taille de l'échantillon. Par conséquent, la complexité totale de la sélection de sous-ensemble complet par force brute devrait être . K O ( K 2 n ) n O ( 2 K K 2 n )
Groupe 2 :λ λ S λ L λ O (LSK2n ) λ λ O (LSK2n )
O (ALSK2n ) UNE α qui équilibre les poids de la crête par rapport à LASSO.
La complexité / vitesse du groupe 2. est discutée dans les sections 3.8 et 3.9 du livre. Par exemple, une régression de crête avec une pénalité donnée a la même complexité de calcul qu'une régression régulière. Étant donné que doit être trouvé à l'aide de la validation croisée, la charge de calcul augmente linéairement dans le nombre de divisions de données utilisées dans la validation croisée (par exemple, ). Si la grille a points, la complexité totale de la régression de crête avec le réglage du paramètre sera . On en parle pas malλ S λ L λ O ( L S K 2 n ) λ λ O ( L S K 2 n ) O ( A L S K 2 n ) A α
LASSO dans le livre, mais je n'ai pas trouvé exactement ce dont j'avais besoin. Cependant, j'ai trouvé à la p. 443 d'Efron et al. "Least Angle Regression" (2004) que la complexité de LASSO pour un donné est la même que la complexité d'un ajustement OLS de régression linéaire si la méthode LARS est utilisée. La complexité totale de LASSO avec le réglage du paramètre sera alors . (Je n'ai pas lu attentivement ce document, alors corrigez-moi si je me trompe.) Le filet élastique combine crête et LASSO; les deux ont la même complexité de calcul; par conséquent, la complexité du filet élastique doit être où est la taille de la grille du paramètre de réglage
Groupe 3 :
Je manque encore une note sur la complexité / vitesse pour le groupe 3. qui se compose de la régression des composantes principales (PCR) et des moindres carrés partiels (PLS).
la source
C'est seulement pour une partie de la question 2 sur le groupe 3 ci-dessus (à savoir PLS), mais peut être informative néanmoins: Srinivasan et al (2010, rapport technique; voir https://www.umiacs.umd.edu/~balajiv/Papers/ UMD_CS_TR_Pls_Gpu.pdf ) a fait quelques mesures sur PLS en utilisant l'algorithme NIPALS - en déclarant que la complexité temporelle (et spatiale) de cet algorithme soit O (dN) - pour l'extraction et en l'incluant dans différents modèles pour a) la détection des humains dans les images, et b ) reconnaissance de visage. Les mesures ont été effectuées à l'aide de leur propre implémentation basée sur GPU.
la source