Maison  >  Article  >  Périphériques technologiques  >  Problèmes de sélection de fonctionnalités dans les algorithmes d'apprentissage automatique

Problèmes de sélection de fonctionnalités dans les algorithmes d'apprentissage automatique

PHPz
PHPzoriginal
2023-10-08 11:24:34660parcourir

Problèmes de sélection de fonctionnalités dans les algorithmes dapprentissage automatique

Problème de filtrage de fonctionnalités dans un algorithme d'apprentissage automatique

Dans le domaine de l'apprentissage automatique, le filtrage de fonctionnalités est un problème très important. Son objectif est de sélectionner les fonctionnalités les plus utiles pour la tâche de prédiction parmi un grand nombre de fonctionnalités. Le filtrage des caractéristiques peut réduire les dimensions, réduire la complexité des calculs et améliorer la précision et l’interprétabilité du modèle.

Il existe de nombreuses méthodes de filtrage de fonctionnalités. Ci-dessous, nous présenterons trois méthodes de filtrage de fonctionnalités couramment utilisées et donnerons des exemples de code correspondants.

  1. Variance Threshold

Variance Threshold est une méthode de sélection de caractéristiques simple et intuitive qui évalue l'importance de la caractéristique par rapport à la variable cible en calculant la variance de la caractéristique. Plus la variance est petite, plus l'impact de la fonctionnalité sur la variable cible est faible et sa suppression peut être envisagée.

from sklearn.feature_selection import VarianceThreshold

# 创建特征矩阵
X = [[0, 2, 0, 3],
     [0, 1, 4, 3],
     [0, 1, 1, 3],
     [1, 2, 3, 5]]

# 创建方差筛选器
selector = VarianceThreshold(threshold=0.8)

# 应用筛选器
X_new = selector.fit_transform(X)

print(X_new)

Dans l'exemple de code ci-dessus, nous avons d'abord créé une matrice de fonctionnalités 4x4 X, puis créé un filtre de variance en définissant le paramètre de seuil sur 0,8, nous ne conservons que les fonctionnalités avec une variance supérieure à 0,8. Enfin, nous appliquons le filtre et imprimons la matrice de fonctionnalités filtrée X_new.

  1. Sélection de caractéristiques basée sur la corrélation

La méthode de filtrage des coefficients de corrélation est une méthode de sélection de caractéristiques basée sur la corrélation entre les caractéristiques et les variables cibles. Il utilise le coefficient de corrélation de Pearson pour mesurer la corrélation linéaire entre les caractéristiques et les variables cibles. Plus la valeur absolue du coefficient de corrélation est grande, plus la corrélation entre la caractéristique et la variable cible est forte, et elle peut être envisagée pour la rétention.

import pandas as pd
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression

# 创建特征矩阵和目标变量
X = pd.DataFrame([[1, -1, 2],
                  [2, 0, 0],
                  [0, 1, -1],
                  [0, 2, 3]])
y = pd.Series([1, 2, 3, 4])

# 创建相关系数筛选器
selector = SelectKBest(score_func=f_regression, k=2)

# 应用筛选器
X_new = selector.fit_transform(X, y)

print(X_new)

Dans l'exemple de code ci-dessus, nous avons d'abord créé une matrice de fonctionnalités 3x3 X et une variable cible y contenant 4 valeurs. Ensuite, un filtre de coefficient de corrélation a été créé. En définissant le paramètre score_func sur f_regression, cela signifie utiliser la fonction f_regression pour calculer le coefficient de corrélation entre la caractéristique et la variable cible. Enfin, nous appliquons le filtre et imprimons la matrice de fonctionnalités filtrée X_new.

  1. Sélection de fonctionnalités basée sur un modèle

La méthode de sélection basée sur un modèle évalue l'importance des fonctionnalités en entraînant un modèle d'apprentissage supervisé et sélectionne les fonctionnalités les plus utiles à la variable cible. Les modèles couramment utilisés incluent les arbres de décision, les forêts aléatoires et les machines à vecteurs de support.

from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectFromModel

# 创建特征矩阵和目标变量
X = [[0.87, -0.15, 0.67, 1.52],
    [0.50, -0.12, -0.23, 0.31],
    [0.14, 1.03, -2.08, -0.06],
    [-0.68, -0.64, 1.62, -0.36]]
y = [0, 1, 0, 1]

# 创建随机森林分类器
clf = RandomForestClassifier()

# 创建基于模型的筛选器
selector = SelectFromModel(clf)

# 应用筛选器
X_new = selector.fit_transform(X, y)

print(X_new)

Dans l'exemple de code ci-dessus, nous avons d'abord créé une matrice de fonctionnalités 4x4 X et une variable cible y contenant 4 étiquettes de classification. Ensuite, un classificateur de forêt aléatoire a été créé et un filtre basé sur un modèle a été créé. Enfin, nous appliquons le filtre et imprimons la matrice de fonctionnalités filtrée X_new.

Le filtrage des fonctionnalités est un problème important dans les algorithmes d'apprentissage automatique. En sélectionnant et en sélectionnant rationnellement les fonctionnalités, la précision et l'interprétabilité du modèle peuvent être améliorées. Les exemples de code ci-dessus donnent des exemples de code pour trois méthodes de filtrage de caractéristiques couramment utilisées : la méthode de filtrage des variances, la méthode de filtrage des coefficients de corrélation et la méthode de filtrage basée sur un modèle. Nous espérons fournir une référence aux lecteurs pour comprendre et appliquer le filtrage des caractéristiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn