Galerie de cartes mentales Algorithme d'apprentissage automatique, notes d'arbre de décision de régression linéaire, carte mentale d'auto-apprentissage
Algorithme d'apprentissage automatique régression linéaire numéro de décision notes auto-apprentissage partage complet ! Le contenu couvre l'algorithme du K-voisin le plus proche, la régression linéaire, la régression logistique, l'arbre de décision, l'apprentissage d'ensemble et le clustering.
Modifié à 2023-02-25 09:44:36Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Algorithme d'apprentissage automatique, notes d'arbre de décision de régression linéaire, carte mentale d'auto-apprentissage
Algorithme du K-voisin le plus proche
Principes d'algorithme et API
Le concept et le principe de l'algorithme du K-plus proche voisin
concept
Si la plupart des k échantillons les plus similaires (c'est-à-dire les plus proches voisins dans l'espace des caractéristiques) d'un échantillon appartiennent à une certaine catégorie, alors l'échantillon appartient également à cette catégorie.
espace de fonctionnalités
Un espace établi en utilisant toutes les entités comme axes de coordonnées. Dans l'espace des entités, chaque échantillon est un point.
[Points clés] Principe et étapes de mise en œuvre
1. Calculez la distance entre le point dans l'ensemble de données de catégorie connue et le point actuel
2. Classez ces distances par ordre croissant
3. Sélectionnez les k points avec la plus petite distance du point actuel
4. Compter la fréquence d'apparition de la catégorie où se situent les k premiers points (trouver le mode des K catégories)
5. Utilisez la catégorie de mode comme catégorie du point actuel
API de l'algorithme K-Nearest Neighbour
Introduction à Scikit-learn
Outils d'apprentissage automatique qui implémentent de nombreux algorithmes d'apprentissage automatique
API
sklearn.neighbours.KNeighborsclassfier(n_neighbours)
Calcul et optimisation d'algorithmes
mesure de distance
Distance euclidienne
Distance de Manhattan (distance d'un bloc)
Distance de Tchebychev
Distance Minkowski (Distance minimale)
Distance euclidienne normalisée
distance cosinus
Distance de Hamming
Les longueurs de chaîne sont égales
Calculer la distance de la chaîne
Distance de Jaccard
distance entre deux ensembles
Distance de Mahalanobis
L'impact du choix de la valeur K sur le modèle
Performance du sous-apprentissage et du surapprentissage
erreur d'approximation
L'erreur du modèle sur l'ensemble d'entraînement
erreur d'estimation
L'erreur du modèle sur l'ensemble de test
Sous-ajustement
L'erreur d'approximation est importante et l'erreur d'estimation est importante. Pour parler franchement, le modèle fonctionne mal à la fois sur l'ensemble d'apprentissage et sur l'ensemble de test.
surapprentissage
L'erreur d'approximation est faible, mais l'erreur d'estimation est grande. Pour parler franchement, le modèle fonctionne bien sur l'ensemble d'apprentissage mais pas sur l'ensemble de test.
La valeur K est trop petite
Largement affecté par les valeurs aberrantes
Le modèle est complexe, possède une forte capacité d’apprentissage et est sujet au surapprentissage.
La valeur K est trop grande
L'impact du déséquilibre de l'échantillon est important
Le modèle est simple, a une faible capacité d’apprentissage et est sujet au sous-ajustement.
arbre kd
introduction à l'arbre kd
notion d'arbre
Noeud principal
Nœuds avec uniquement des nœuds enfants et aucun nœud parent
nœud interne
Nœuds comportant des nœuds enfants et des nœuds parents
noeud feuille
Nœuds avec uniquement des nœuds parents et aucun nœud enfant
Arbre binaire
Un arbre avec au plus deux nœuds fourchus
Le rôle de l'arbre kd
Réduisez le nombre de calculs de distance d'échantillonnage et trouvez rapidement le point voisin le plus proche
Méthode de construction de l'arbre kd
1. Sélectionnez au hasard une entité, prenez la médiane de cette entité comme point de division pour diviser les données en deux parties égales. L'entité sélectionnée est l'entité de division du nœud actuel et le point médian est utilisé comme nœud actuel. Sur cette entité, les points plus petits que la médiane sont classés dans le nœud de gauche et les points plus grands que la médiane sont classés dans le nœud de droite. nœud;
2. Répétez la première étape pour les données sur le nœud gauche et le nœud droit respectivement ;
3. Jusqu'à ce que tous les échantillons soient placés sur le nœud
Comment trouver le point le plus proche dans l'arbre kd
1. Comparez le point de requête M avec les caractéristiques de division et la médiane correspondante de chaque nœud de l'arbre kd, et continuez à comparer vers le bas jusqu'à atteindre le nœud feuille. Enregistrez dans l'ordre les nœuds parcourus tout au long du processus search_path ;
2. Le nœud à la fin de search_path est N, ne retirez pas N, enregistrez la distance entre dist=M et N, le plus proche=N ;
3. Retirez un nœud L de la fin de search_path, l'axe de division de ce nœud est x, calculez la distance a du point M à l'axe x, puis gérez-la dans deux cas :
Si a<dist, alors tous les points de l'espace de l'autre côté divisé par le nœud L et le point actuel le plus proche sont inclus dans la plage d'investigation, les distances de tous les points de la plage d'investigation au point M sont calculées, le point le plus proche est trouvé, et le point est enregistré comme le plus proche. La distance de ce point à M est dist, rejetez le nœud L et l'étape se termine ;
Si a>=dist, supprimez le nœud L et l'étape se termine
4. Répétez l'étape 3 jusqu'à ce que search_path soit vide ;
5. Le plus proche est le point le plus proche du point de recherche et la distance la plus proche est la distance.
Cas 1
Introduction à l'API de jeu de données de scikit-learn
sklearn petit ensemble de données
API : load_* Tel que : load_iris()
ensemble de données volumineuses sklearn
API : fetch_* Tel que : fetch_20newsgroups(sub_set='train')
Description du paramètre : sub_set='train' spécifie le type d'ensemble de données à obtenir
Introduction à la valeur de retour de l'ensemble de données Sklearn
Type de données : datasets.base.Bunch (format dictionnaire)
data : tableau de données de caractéristiques
target : tableau d’étiquettes (valeurs cibles)
feature_names : noms de fonctionnalités
target_names : noms de balises
keys() récupère tous les attributs (champs) du dictionnaire
Dessinez un nuage de points de données et trouvez les valeurs aberrantes
sns.lmplot(col1, col2, données, teinte, fit_reg)
Partition de l'ensemble de données
x_train, x_test, y_train, y_test = trian_test_split(x, y, test_size)
Prétraitement des fonctionnalités à l'aide de sklearn
Normalisé
Inconvénients de la normalisation : fortement affecté par les valeurs aberrantes
API : MinMaxScaler (feature_range)
Fonction : Convertir les données entre 0 et 1
standardisation
API : StandarScalar()
Fonction : Convertir les données en moyenne = 0, std = 1
Prédiction des espèces de fleurs d'iris
Cas 2
Validation croisée et recherche de grille
Validation croisée
Divisez l'ensemble de formation uniformément en N parties, prenez une partie différente comme ensemble de vérification et l'autre partie comme ensemble de formation, entraînez et vérifiez les performances du modèle, et utilisez la moyenne des N fois de performance du modèle comme performance du modèle sur cet ensemble de formation.
recherche de grille
Trouver la combinaison optimale d'hyperparamètres
API
sklearn.model_selection.GridSearchCV (estimateur, param_grid, cv)
Prédire le lieu d'enregistrement sur Facebook
régression linéaire
Introduction à la régression linéaire
Formule mathématique (modèle mathématique) de régression linéaire
h(w) = w1*x1 w2*x2 w3*x3 ... wn*xnb
Le concept d'hyperplan
La relation linéaire à n-1 dimensions dans un espace à n dimensions est appelée hyperplan dans un espace à n dimensions.
API
sklearn.linear_model.LinearRegression()
Pertes et optimisation pour la régression linéaire
fonction de perte
1. La fonction de perte est fonction des paramètres entraînables
2. Plus la valeur de la fonction de perte est petite, plus la valeur prédite du modèle est proche de la valeur réelle.
Méthode d'optimisation de régression linéaire
équation normale
Calculer directement les paramètres optimaux
REMARQUE : Applicable uniquement aux modèles de régression linéaire avec perte des moindres carrés
méthode de descente de gradient
Parcourez continuellement les gradients pour trouver les paramètres optimaux pouvant être entraînés
Méthodes générales d'optimisation
Fonction de perte La descente de gradient est la méthode d'optimisation de modèle la plus courante
méthode de descente de gradient
Algorithme de descente à gradient complet (FG)
Algorithme de descente de gradient stochastique (SG)
Algorithme de descente de gradient moyen stochastique (SAG)
Algorithme de descente de gradient en mini-lots (mini-bantch)
Pronostic de prix pour l'immobilier Case-Boston
API d'évaluation des performances de régression : sklearn.metrics.mean_squared_error(y_true, y_pred)
API de régression linéaire d'optimisation d'équation normale : sklearn.linear_model.LinearRegression()
Optimisation de la régression linéaire avec descente de gradient stochastique : sklearn.linear_model.SGDRegressor()
Surapprentissage et sous-apprentissage
Sous-ajustement
Définition : le modèle fonctionne mal à la fois sur l'ensemble d'entraînement et sur l'ensemble de test.
Solution : Augmenter la complexité du modèle
Augmenter le nombre de fonctionnalités des données
Ajouter des termes polynomiaux
surapprentissage
Définition : le modèle fonctionne bien sur l'ensemble d'entraînement, mais ne fonctionne pas bien sur l'ensemble de test.
Solution : réduire la complexité du modèle
Nettoyer à nouveau les données
Augmenter la quantité de données d'entraînement
Régularisation
Régularisation L1 : Vous pouvez rendre certaines valeurs W directement à 0, supprimant ainsi l'influence de cette fonctionnalité. Peut être utilisé pour la sélection de fonctionnalités
Régularisation L2 : elle peut rendre certains W très petits et proches de 0, affaiblissant ainsi l'influence d'une certaine caractéristique.
Réduire le nombre de fonctionnalités
modèle linéaire régularisé
régression de crête
Régularisation de régression linéaire L2
Le lasso revient
Régularisation de régression linéaire L1
réseau élastique
Régression linéaire L1 L2
régression de crête
Régression linéaire avec régularisation L2
API : Crête (alpha)
Sauvegarde et chargement de modèles
Enregistrer : joblib.dump (estimateur, chemin)
Chargement : joblib.load(chemin)
régression logistique
Les principes de la régression logistique
Modèle mathématique : fonction d'activation de régression linéaire (sigmoïde)
Le rôle de la fonction d'activation : augmenter la capacité d'ajustement non linéaire du modèle
Fonction de perte : perte de vraisemblance logarithmique
Méthode d'optimisation : descente de gradient
API : sklearn.linear_model.LogisticRegression()
Comment évaluer les modèles de classification
API du rapport d'évaluation de la classification : classification_report(y_true, y_pred, label, target_names)
Courbe ROC
TPR = TP / (TPFN)
FPR = FP / (FP TN)
Ajustez le seuil pour obtenir plusieurs points (FPR, TPR) et tracez la courbe ROC
Indicateur AUC
Signification : sélectionner au hasard une paire d'échantillons positifs et négatifs, la probabilité que le score de l'échantillon positif soit supérieur à celui de l'échantillon négatif
API : roc_auc_score(y_true, y_score), remarque : y_true doit utiliser 0, 1 pour marquer les cas faux et les cas positifs
arbre de décision
Introduction à l'algorithme d'arbre de décision
L'arbre de décision est une structure arborescente
Chaque nœud interne représente le jugement d'une fonctionnalité
Chaque branche représente la sortie d'un résultat de jugement
Chaque nœud feuille représente un résultat de classification
Le principe de l'arbre de décision
Sélection des fonctionnalités et base de division des nœuds de l'arbre de décision
entropie
Une mesure de « chaos »
entropie = -p1logp1 - p2logp2 ... pn*log(pn)
gain d'informations
La différence d'entropie avant et après la division de l'ensemble de données par une certaine fonctionnalité
Gain d'information = entrée (avant) - entrée (après)
Plus le gain d’informations est important, meilleure est la méthode de classification de cette fonctionnalité.
taux de gain d'informations
Mesure du gain d’informations/informations séparées
Mesure d'information de séparation = entropie calculée à partir de la probabilité d'occurrence de chaque catégorie d'une caractéristique
Gain de Gini
Valeur de Gini : la probabilité que deux échantillons sélectionnés au hasard dans l'ensemble de données D aient des valeurs cibles (étiquettes) incohérentes.
Plus la valeur de Gini est petite, plus la pureté de l'ensemble de données est élevée.
Gain Gini = valeur Gini (avant) - valeur Gini (après)
Plus le gain de valeur de Gini est important, meilleure est cette méthode de division.
Étapes pour construire un arbre de décision
1. Commencez à examiner tous les échantillons dans leur ensemble
2. Parcourez chaque méthode de segmentation de chaque fonctionnalité et trouvez la meilleure segmentation (en fonction du gain d'informations, du taux de gain d'informations et du gain de valeur Gini)
3. Selon la méthode de division optimale, divisez tous les échantillons en deux parties N1 et N2, c'est-à-dire deux branches
4. Continuez les étapes 2 et 3 pour N1 et N2 jusqu'à ce que chaque nœud soit suffisamment « pur ».
Selon différentes bases de sélection et de division des nœuds, l'arbre de décision est divisé en
Arbre de décision ID3 : gain d'informations
Arbre de décision C4.5 : taux de gain d'informations
Arbre de décision CART : gain de valeur de Gini (ou indice de Gini)
taille de chariot
Objectif : Réduire le nombre de nœuds de l'arbre de décision -> Réduire la complexité de l'arbre de décision -> Empêcher le surajustement de l'arbre de décision
méthode
Pré-élagage : élagage lors de la création d'un arbre de décision
Le nombre minimum d'échantillons contenus dans chaque nœud, par exemple 10. Si le nombre total d'échantillons au niveau du nœud est inférieur à 10, aucune classification ne sera effectuée.
Spécifiez la hauteur ou la profondeur de l'arbre, par exemple, la profondeur maximale de l'arbre est de 4
Si l'entropie du nœud spécifié est inférieure à une certaine valeur, elle ne sera plus divisée.
Post-élagage : élagage après création de l'arbre de décision
La méthode est similaire à la pré-taille
Ingénierie des fonctionnalités : extraction de fonctionnalités
Extraction de fonctionnalités de dictionnaire
sklearn.feature_extraction.DictVectorizer(sparse=True)
Remarque : Cette méthode encodera automatiquement les données discrètes one_hot
Extraction des caractéristiques du texte
nombre d'occurrences de mots
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
Extraction des fonctionnalités de texte Tf-idf
TF : fréquence des mots
Désigne la fréquence d'apparition d'un mot donné dans le document
IDF : fréquence inverse des documents
Divisez le nombre total de documents par le nombre de documents contenant le mot, puis prenez le logarithme en base 10 du quotient pour obtenir
TF-IDF
TF-IDF = TF*IDF
Fonction : Évaluer l'importance d'un mot dans un ensemble de documents ou un document dans un corpus
API : sklearn.feature_extraction.text.TfidfVectorizer (stop_works)
Remarque : Pour extraire des fonctionnalités d'articles chinois, la segmentation des mots doit d'abord être effectuée.
Participe bégayant : jieba.cut
Cas : prédiction de la survie des passagers du Titanic
API d'arbre de décision : sklearn.tree.DecisionTreeClassifier(criterion='gini', max_degree=None,random_state=None)
Visualisation de l'arbre de décision : sklearn.tree.export_graphviz()
Résumer
Avantages des arbres de décision : simples, interprétables et visualisables
Inconvénients des arbres de décision : faciles à surajuster
Solution
taille
forêt aléatoire
Apprentissage d'ensemble
Introduction aux algorithmes d'apprentissage d'ensemble
Générez plusieurs classificateurs/modèles, chacun apprenant et faisant des prédictions indépendamment. Ces prédictions sont finalement combinées en une prédiction combinée qui est meilleure que n'importe quelle prédiction de classification unique.
boosting -> sous-ajustement
ensachage -> surajustement
Apprentissage d’un ensemble d’ensachage
Principe : construisez plusieurs modèles en parallèle et les modèles sont indépendants les uns des autres
1. Échantillonnage : échantillonnage de N éléments de données avec remplacement aléatoire
2. Apprentissage : utilisez N éléments de données pour apprendre N modèles différents
3. Intégration : Grâce au vote égal de N modèles, celui avec le plus de votes sera le résultat final.
forêt aléatoire
Qu'est-ce que la forêt aléatoire : arbre de décision d'ensachage
API : sklearn.ensemble.RandomForestClassifier (n_estimators, max_degree)
avantage
Les deux méthodes peuvent améliorer le taux de précision de la généralisation d’environ 2 % par rapport à l’algorithme d’origine.
Simple, pratique et polyvalent
Principe d'intégration stimulant : construisez plusieurs modèles en série, et le modèle construit plus tard est affecté par le modèle construit précédemment.
1. Initialisez les poids d'entraînement, rendez les poids égaux et formez le premier apprenant (modèle)
2. Calculer le taux d'erreur de l'apprenant dans les données de formation
3. Calculez le poids de l'apprenant en fonction du taux d'erreur
4. Repondérer les données d'entraînement en fonction du poids de l'apprenant
5. Répétez les étapes 1 à 4 fois
6. Vote pondéré sur les résultats de m modèles pour obtenir le résultat final
regroupement
Introduction aux algorithmes de clustering
L'algorithme de clustering est un algorithme d'apprentissage non supervisé typique, principalement utilisé pour classer automatiquement des échantillons similaires dans une catégorie.
La plus grande différence entre les algorithmes de clustering et les algorithmes de classification : les algorithmes de clustering sont des algorithmes d'apprentissage non supervisé et les algorithmes de classification sont des algorithmes d'apprentissage supervisé.
Utilisation initiale de l'API de l'algorithme de clustering
sklearn.cluster.KMeans(n_clusters=8)
Méthode de prédiction : appelez fit_predict(X) pour obtenir les résultats de la classification
Processus de mise en œuvre de l'algorithme de clustering (principe)
1. Sélectionnez au hasard K échantillons comme centres de K catégories ;
2. Calculez la distance entre tous les échantillons et le centre ;
3. Dans quelle catégorie l'échantillon est le plus proche du centre ;
4. Après avoir divisé K catégories, recalculez les coordonnées du centre. La méthode de calcul consiste à utiliser la valeur moyenne de chaque valeur caractéristique des échantillons de la catégorie comme coordonnées correspondantes du nouveau centre.
5. Répétez les étapes 2, 3 et 4 jusqu'à ce que les coordonnées du centre ne changent plus.
Évaluation du modèle pour le clustering
Somme des erreurs quadratiques : la somme des distances au carré (distance euclidienne) de tous les échantillons au centre de catégorie correspondant
Méthode « Coude » : lorsque le taux de déclin ralentit soudainement, il est considéré comme la meilleure valeur k
Coefficient de silhouette SC : La valeur est [-1, 1]. Plus la valeur est grande, mieux c'est. S'il s'agit d'une valeur négative, l'échantillon peut être mal classé.
Coefficient CH : Plus le score s est élevé, meilleur est l’effet de clustering.
Optimisation de l'algorithme
Algorithme de canopée avec clustering initial
K-moyennes
K-moyennes bipartites
ISODONNÉES
kmeans du noyau
K-Means en mini-lots
Réduction de la dimensionnalité des fonctionnalités
Sélection de fonctionnalité
Supprimer les fonctionnalités à faible variance
Coefficient de corrélation de Pearson
Coefficient de corrélation de Spearman
Analyse en composantes principales ACP
Cas : Exploration des préférences utilisateur pour les catégories d'articles et la réduction de dimensionnalité