[PYTHON] Écriture intelligente lors de l'ajout de statistiques d'apprentissage automatique en tant que fonctionnalités

Voici comment écrire du code qui génère une statistique dans le sens des lignes des données numériques en tant que quantité d'entités.

Génération de montant de caractéristique commune

Tout d'abord, comment bien écrire

#Comment ajouter un par un
df["sum"] = df.sum(axis=1)
df["max"] = df.max(axis=1)
df["min"] = df.min(axis=1)
df["mean"] = df.mean(axis=1)
df["median"] = df.median(axis=1)
df["mad"] = df.mad(axis=1)
df["var"] = df.var(axis=1)
df["std"] = df.std(axis=1)
df["skew"] = df.skew(axis=1)
df["kurt"] = df.kurt(axis=1)

df.head()

C'est bien, mais cela semble un peu inconfortable compte tenu de l'évolutivité et de la maintenance.

Génération de fonctionnalités intelligentes

func_list =["sum", "max", "min", "mean", "median", "mad",
            "var", "std", "skew", "kurt"]

for func in func_list:
    df[func] = df.apply(func, axis=1)
    

La fonction Lambda peut également être utilisée

f_diff = lambda x: df["xxx"]-df["yyy"]

func_list =["sum", "max", "min", "mean", "median", "mad",
            "var", "std", "skew", "kurt", f_diff]

for func in func_list:
    df[func] = df.apply(func, axis=1)
    

Dans l'apprentissage automatique, il existe de nombreuses expériences ad hoc, de sorte que le code «rédigé» a tendance à être produit en masse.

L'écriture de code aussi propre que possible le rend plus facile à réutiliser et plus extensible.

Recommended Posts

Écriture intelligente lors de l'ajout de statistiques d'apprentissage automatique en tant que fonctionnalités
Lors de l'ajout de fonctionnalités hautement indépendantes
Introduction à la rédaction de notes d'apprentissage automatique
[Python] Lorsqu'un amateur commence l'apprentissage automatique
Apprentissage automatique
Apprentissage automatique du sport-Analyse de la J-League à titre d'exemple-②
[Note] Python, lors du démarrage du machine learning / deep learning [Liens]