Heim >Technologie-Peripheriegeräte >KI >Implementieren Sie automatisches Feature-Engineering mit Featuretools
Featuretools ist eine Python-Bibliothek für automatisiertes Feature-Engineering. Ziel ist es, den Feature-Engineering-Prozess zu vereinfachen und die Leistung von Modellen für maschinelles Lernen zu verbessern. Die Bibliothek kann automatisch nützliche Funktionen aus Rohdaten extrahieren, was Benutzern hilft, Zeit und Aufwand zu sparen und gleichzeitig die Modellgenauigkeit zu verbessern.
Hier sind die Schritte zur Verwendung von Featuretools zur Automatisierung des Feature-Engineerings:
Bevor Sie Featuretools verwenden, müssen Sie den Datensatz vorbereiten. Der Datensatz muss im Pandas DataFrame-Format vorliegen, wobei jede Zeile eine Beobachtung und jede Spalte ein Feature darstellt. Bei Klassifizierungs- und Regressionsproblemen muss der Datensatz eine Zielvariable enthalten, während bei Clustering-Problemen der Datensatz keine Zielvariable erfordert. Stellen Sie daher bei der Verwendung von Featuretools sicher, dass der Datensatz diese Anforderungen erfüllt, damit Feature-Engineering und Feature-Generierung effizient durchgeführt werden können.
Wenn Sie Featuretools für die Feature-Entwicklung verwenden, müssen Sie zuerst Entitäten und Beziehungen definieren. Eine Entität ist eine Teilmenge eines Datensatzes, die eine Reihe verwandter Merkmale enthält. Beispielsweise können auf einer E-Commerce-Website Bestellungen, Benutzer, Produkte, Zahlungen usw. als unterschiedliche Einheiten behandelt werden. Beziehungen sind Verbindungen zwischen Entitäten. Beispielsweise kann eine Bestellung einem Benutzer zugeordnet sein und ein Benutzer kann mehrere Produkte kaufen. Durch die klare Definition von Entitäten und Beziehungen kann die Struktur des Datensatzes besser verstanden werden, was die Generierung von Merkmalen und die Datenanalyse erleichtert.
Mit Featuretools können Sie einen Entitätssatz erstellen, indem Sie Entitäten und Beziehungen definieren. Ein Entitätssatz ist eine Sammlung mehrerer Entitäten. In diesem Schritt müssen Sie den Namen, den Datensatz, den Index, den Variablentyp und den Zeitstempel jeder Entität definieren. Beispielsweise kann ein Entitätssatz, der Bestell- und Benutzerentitäten enthält, mit dem folgenden Code erstellt werden:
import featuretools as ft # Create entity set es=ft.EntitySet(id='ecommerce') # Define entities orders=ft.Entity(id='orders',dataframe=orders_df,index='order_id',time_index='order_time') users=ft.Entity(id='users',dataframe=users_df,index='user_id') # Add entities to entity set es=es.entity_from_dataframe(entity_id='orders',dataframe=orders_df,index='order_id',time_index='order_time') es=es.entity_from_dataframe(entity_id='users',dataframe=users_df,index='user_id')
Hier verwenden wir EntitySet, um einen Entitätssatz mit dem Namen „ecommerce“ zu erstellen und zwei Entitäten mithilfe von „Entity“, „Bestellungen“ und „Benutzer“ zu definieren . Für die Bestellentität haben wir die Bestell-ID als Index und die Bestellzeit als Zeitstempel angegeben. Für die Benutzerentität haben wir nur die Benutzer-ID als Index angegeben.
In diesem Schritt müssen Sie die Beziehungen zwischen Entitäten definieren. Mit Featuretools können Beziehungen durch gemeinsame Variablen, Zeitstempel usw. zwischen Entitäten definiert werden. Auf einer E-Commerce-Website ist beispielsweise jede Bestellung einem Benutzer zugeordnet. Die Beziehung zwischen Bestellungen und Benutzern kann mit dem folgenden Code definiert werden:
# Define relationships r_order_user = ft.Relationship(orders['user_id'], users['user_id']) es = es.add_relationship(r_order_user)
Hier haben wir die Beziehung zwischen Bestellungen und Benutzern mithilfe von Relationship definiert und sie mithilfe von add_relationship zum Entitätssatz hinzugefügt.
Nach Abschluss der obigen Schritte können Sie den Deep-Feature-Synthese-Algorithmus von Featuretools verwenden, um Features automatisch zu generieren. Dieser Algorithmus erstellt automatisch neue Funktionen wie Aggregationen, Transformationen und Kombinationen. Sie können den folgenden Code verwenden, um den Deep-Feature-Synthese-Algorithmus auszuführen:
# Run deep feature synthesis algorithm features, feature_names = ft.dfs(entityset=es, target_entity='orders', max_depth=2)
Hier verwenden wir die dfs-Funktion, um den Deep-Feature-Synthese-Algorithmus auszuführen, geben die Zielentität als Auftragsentität an und legen die maximale Tiefe auf 2 fest. Die Funktion gibt einen DataFrame zurück, der die neuen Features und eine Liste von Feature-Namen enthält.
Nachdem Sie die neuen Funktionen erhalten haben, können Sie diese zum Trainieren des Modells für maschinelles Lernen verwenden. Mit dem folgenden Code können dem Originaldatensatz neue Funktionen hinzugefügt werden:
# Add new features to original dataset df=pd.merge(orders_df,features,left_on='order_id',right_on='order_id')
Hier verwenden wir die Zusammenführungsfunktion, um dem Originaldatensatz für Training und Tests neue Funktionen hinzuzufügen. Die neuen Funktionen können dann zum Trainieren eines Modells für maschinelles Lernen verwendet werden, zum Beispiel:
# Split dataset into train and test sets X_train, X_test, y_train, y_test = train_test_split(df[feature_names], df['target'], test_size=0.2, random_state=42) # Train machine learning model model = RandomForestClassifier() model.fit(X_train, y_train) # Evaluate model performance y_pred = model.predict(X_test) accuracy_score(y_test, y_pred)
Hier verwenden wir einen zufälligen Waldklassifikator als Modell für maschinelles Lernen und verwenden den Trainingssatz, um das Modell zu trainieren. Anschließend verwenden wir den Testsatz, um die Modellleistung zu bewerten, wobei wir die Genauigkeit als Bewertungsmaßstab verwenden.
Zu den Schritten zur Verwendung von Featuretools zur Automatisierung des Feature-Engineerings gehören das Vorbereiten von Daten, das Definieren von Entitäten und Beziehungen, das Erstellen von Entitätssätzen, das Definieren von Beziehungen, das Ausführen von Deep-Feature-Synthese-Algorithmen und das Erstellen von Modellen. Featuretools können automatisch nützliche Funktionen aus Rohdaten extrahieren, was Benutzern hilft, viel Zeit und Mühe zu sparen und die Leistung von Modellen für maschinelles Lernen zu verbessern.
Das obige ist der detaillierte Inhalt vonImplementieren Sie automatisches Feature-Engineering mit Featuretools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!