CatBoost | Kategoriale CatBoost-Funktionen

Inhalt

Einführung

Wie viele von Ihnen haben diesen Fehler beim Erstellen Ihrer Machine Learning-Modelle mit . gesehen? “sklearn”?
screen-shot-2017-08-13-at-11-52-00-am1-5969486

Ich wette die meisten von uns! Zumindest in den ersten Tagen.

Dieser Fehler tritt beim Umgang mit kategorialen Variablen auf (Ketten). Und klar, Sie müssen diese Kategorien in ein numerisches Format umwandeln.

Um diese Konvertierung durchzuführen, wir verwenden verschiedene Vorverarbeitungsmethoden wie “Tag-Codierung”, “heiße Codierung” und andere.

In diesem Artikel, Ich werde vor kurzem über eine Open-Source-Bibliothek sprechen ” CatBoost”Entwickelt und beigesteuert von Yandex. CatBoost kann kategoriale Funktionen direkt verwenden und ist skalierbar.

„Dies ist die erste Open-Source-Technologie für maschinelles Lernen in Russland”, Michail Bilenko sagte, Yandex Leiter der Abteilung für maschinelle Intelligenz und Forschung.

PD Sie können diesen von mir geschriebenen Artikel auch vorher lesen “Umgang mit kategorialen Variablen?”.

Inhaltsverzeichnis

  1. Was ist CatBoost?
  2. Vorteile der CatBoost-Bibliothek
  3. CatBoost im Vergleich zu anderen Boost-Algorithmen
  4. CatBoost-Installation
  5. Lösen der ML-Herausforderung mit CatBoost
  6. Abschließende Anmerkungen

1. Was ist CatBoost?

CatBoost ist ein Open-Source-Algorithmus für maschinelles Lernen von Yandex. Kann leicht in Deep-Learning-Frameworks wie Googles TensorFlow und Apples Core ML integriert werden. Sie können mit verschiedenen Arten von Daten arbeiten, um eine Vielzahl von Problemen zu lösen, mit denen Unternehmen heute konfrontiert sind. Um es zu ergänzen, bietet erstklassige Genauigkeit.

Es ist in zweierlei Hinsicht besonders mächtig:

  • Erzeugt State-of-the-Art-Ergebnisse ohne umfangreiches Datentraining, das normalerweise von anderen maschinellen Lernmethoden erforderlich ist, Ja
  • Bietet leistungsstarke Out-of-the-Box-Unterstützung für die beschreibenderen Datenformate, die mit vielen Geschäftsproblemen einhergehen.

Der Name von “CatBoost” kommt aus zwei Wörtern “KatzeEgorie „y“ZunahmeGespenstisch”.

Wie besprochen, Bibliothek funktioniert gut mit Multiples KatzeDaten-Egorien, als Audio, Text, Bild, einschließlich historischer Daten.

Zunahme„Es kommt vom maschinellen Lernalgorithmus, der den Gradienten antreibt, da diese Bibliothek auf einer Bibliothek basiert, die den Gradienten steuert. Gradient Augmentation ist ein leistungsstarker Algorithmus für maschinelles Lernen, der weit verbreitet auf verschiedene Arten von geschäftlichen Herausforderungen angewendet wird, wie Betrugserkennung, Empfehlungsartikel, Prognosen und es funktioniert auch gut. Es kann auch mit relativ weniger Daten sehr gute Ergebnisse liefern, im Gegensatz zu DL-Modellen, die aus einer großen Datenmenge lernen müssen.

Screenshot-2017-08-13-at-1-19-37-pm-6074974

Hier ist eine Videobotschaft von Mikhail Bilenko, Yandex Leiter der Abteilung für maschinelle Intelligenz und Forschung, und Anna Veronika Dorogush, Direktor für maschinelle Lernsysteme bei Tandex.

2. Vorteile der CatBoost-Bibliothek

  • Leistung: CatBoost liefert Ergebnisse auf dem neuesten Stand der Technik und ist an der Leistungsfront mit allen führenden Algorithmen für maschinelles Lernen konkurrenzfähig.
  • Automatische Handhabung kategorialer Merkmale: Wir können CatBoost ohne explizite Vorverarbeitung verwenden, um Kategorien in Zahlen umzuwandeln. CatBoost wandelt kategoriale Werte in Zahlen um, indem verschiedene Statistiken zu Kombinationen von kategorialen Merkmalen und Kombinationen von kategorialen und numerischen Merkmalen verwendet werden. Sie können mehr darüber lesen hier.
  • Robust: Reduziert die Notwendigkeit einer umfangreichen Hyperparameter-Abstimmung und verringert die Wahrscheinlichkeit einer Überabstimmung, was auch zu verallgemeinerten Modellen führt. Selbst wenn, CatBoost hat mehrere Parameter zum Anpassen und enthält Parameter wie die Anzahl der Bäume, die Lernrate, Regulierung, die Tiefe des Baumes, die Faltengröße, Absacktemperatur und andere. Sie können alle diese Parameter lesen hier.
  • Einfach zu verwenden: Sie können CatBoost über die Befehlszeile verwenden, Verwenden einer benutzerfreundlichen API für Python und R.

3. CatBoost: Vergleich mit anderen Boost-Bibliotheken

Wir haben mehrere Boost-Bibliotheken wie XGBoost, H2O und LightGBM und alle funktionieren gut bei einer Vielzahl von Problemen. Der CatBoost-Entwickler hat die Leistung mit der Konkurrenz bei Standard-ML-Datensätzen verglichen:

Screenshot-2017-08-13-at-3-33-33-pm-6084320

Der obige Vergleich zeigt den Log-Loss-Wert für die Testdaten und ist bei . am niedrigsten CatBoost In den meisten Fällen. Dies bedeutet eindeutig, dass CatBoost sowohl für abgestimmte als auch für Standardmodelle am besten funktioniert.

Abgesehen davon, CatBoost erfordert keine Konvertierung des Datensatzes in ein bestimmtes Format wie XGBoost und LightGBM.

4. CatBoost-Installation

CatBoost ist sowohl für Python als auch für R . einfach zu installieren. Sie benötigen eine Version von 64 Python- und R-Bits.

Unten sind die Installationsschritte für Python und R:

4.1 Python-Installation:

pip install catboost

4.2 R-Installation

install.packages('devtools')
devtools::install_github('catboost/catboost', subdir="catboost/R-package")

5. Lösen Sie die AA-Herausforderung mit CatBoost

Die CatBoost-Bibliothek kann verwendet werden, um Klassifikations- und Regressionsherausforderungen zu lösen. Zur Klassifizierung, du kannst verwenden “CatBoostClassifier“Und für den Rückschritt,”CatBoostReturn“.

Hier ist ein Live-Encoding-Fenster, in dem Sie mit dem CatBoost-Code spielen und die Ergebnisse in Echtzeit sehen können:

In diesem Artikel, ich löse “Big Mart-Verkäufe”Übungsproblem mit CatBoost. Es ist eine Regressionsherausforderung, also verwenden wir CatBoostRegressor, Ich werde zuerst die grundlegenden Schritte lesen (Ich werde kein Feature Engineering durchführen, Ich werde nur ein Basismodell bauen).

Pandas als pd importieren
numpy als np importieren
aus catboost-Import CatBoostRegressor

#Trainings- und Testdateien lesen
train = pd.read_csv("zug.csv")
test = pd.read_csv("test.csv")

#Identifizieren Sie den Datentyp von Variablen
train.dtypes

Screenshot-2017-08-13-at-4-30-27-pm-2548855
#Finden der fehlenden Werte
train.isnull().Summe()
Screenshot-2017-08-13-at-4-32-08-pm-8777900
#Imputieren fehlender Werte für Train und Test
train.fillna(-999, inplace=Wahr)
test.fillna(-999,inplace=Wahr)

#Erstellen eines Trainingssets für Modellierungs- und Validierungssets, um die Modellleistung zu überprüfen
X = train.drop(['Item_Outlet_Sales'], Achse=1)
y = train.Item_Outlet_Sales

aus sklearn.model_selection import train_test_split
X_Zug, X_validation, y_train, y_validation = train_test_split(x, Ja, train_size=0.7, random_state=1234)

#Schauen Sie sich den Datentyp von Variablen an
X.dtypes
Screenshot-2017-08-13-at-4-42-52-pm-8311816

Jetzt, Sie werden sehen, dass wir nur kategoriale Variablen identifizieren. Wir werden keine Vorverarbeitungsschritte für kategoriale Variablen durchführen:

categorical_features_indices = np.where(X.dtypes != np.float)[0]

#Bibliothek und Gebäudemodell importieren
aus catboost-Import CatBoostRegressor
model=CatBoostRegressor(Iterationen=50, Tiefe=3, Lernrate=0,1, loss_function='RMSE')
model.fit(X_Zug, y_train,cat_features=categorical_features_indices,eval_set=(X_validation, y_validation),Plot=Wahr)

Screenshot-2017-08-13-at-4-50-52-pm-7740085

Wie du siehst, ein Basismodell bietet eine faire Lösung und Trainings- und Testfehler werden synchronisiert. Sie können die Modellparameter und -funktionen anpassen, um die Lösung zu verbessern.

Jetzt, die nächste Aufgabe besteht darin, das Ergebnis des Testdatensatzes vorherzusagen.

Einreichung = pd.DataFrame()
Vorlage['Item_Identifier'] = testen['Item_Identifier']
Vorlage['Outlet_Identifier'] = testen['Outlet_Identifier']
Vorlage['Item_Outlet_Sales'] = model.predict(Prüfung)
vorlage.to_csv("Einreichung.csv")

Das ist alles! Wir haben das erste Modell mit CatBoost gebaut

6. Abschließende Anmerkungen

In diesem Artikel, Wir haben kürzlich eine Open-Source-Boost-Bibliothek gesehen “CatBoost” von Yandex, das eine hochmoderne Lösung für eine Vielzahl von Geschäftsproblemen bietet.

Eines der Hauptmerkmale, das mich an dieser Bibliothek begeistert, ist die automatische Handhabung von kategorialen Werten mithilfe verschiedener statistischer Methoden.

In diesem Artikel haben wir grundlegende Details zu dieser Bibliothek behandelt und eine Regressionsherausforderung gelöst.. Ich empfehle Ihnen auch, diese Bibliothek zu verwenden, um eine Unternehmenslösung zu lösen und die Leistung mit anderen Modellen der nächsten Generation zu vergleichen..

Lernen, Anheuern, In Wettbewerb stehen Ja Angestellt werden

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.