Auf diese Weise wird Code geschrieben, der eine Statistik in Zeilenrichtung numerischer Daten als Merkmalsgröße generiert.
Zuallererst, wie man gut schreibt
#Wie man eins nach dem anderen hinzufügt
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()
Dies ist in Ordnung, fühlt sich jedoch angesichts der Erweiterbarkeit und Wartung etwas unangenehm an.
func_list =["sum", "max", "min", "mean", "median", "mad",
"var", "std", "skew", "kurt"]
for func in func_list:
df[func] = df.apply(func, axis=1)
Die Lambda-Funktion kann ebenfalls verwendet werden
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)
Beim maschinellen Lernen gibt es viele Ad-hoc-Experimente, so dass "Verwerfen" -Code in der Regel in Massenproduktion hergestellt wird.
Das Schreiben von Code, der so sauber wie möglich ist, erleichtert die Wiederverwendung und ist erweiterbarer.
Recommended Posts