Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  LightGBM tatsächlicher Kampf + zufällige Suchparameteranpassung: Genauigkeitsrate 96,67 %

LightGBM tatsächlicher Kampf + zufällige Suchparameteranpassung: Genauigkeitsrate 96,67 %

PHPz
PHPzOriginal
2024-06-08 22:45:30673Durchsuche

LightGBM tatsächlicher Kampf + zufällige Suchparameteranpassung: Genauigkeitsrate 96,67 %

Hallo zusammen, ich bin Peter~

LightGBM ist ein klassischer Algorithmus für maschinelles Lernen. Sein Hintergrund, seine Prinzipien und Eigenschaften sind sehr studienwürdig. Der Algorithmus von LightGBM bietet Funktionen wie Effizienz, Skalierbarkeit und hohe Genauigkeit. In diesem Artikel werden kurz die Merkmale und Prinzipien von LightGBM sowie einige Fälle vorgestellt, die auf LightGBM und zufälliger Suchoptimierung basieren.

LightGBM-Algorithmus

Im Bereich des maschinellen Lernens sind Gradient Boosting Machines (GBMs) eine Klasse leistungsstarker Ensemble-Lernalgorithmen, die Vorhersagefehler minimieren, indem sie nach und nach schwache Lernende (normalerweise Entscheidungsbäume) hinzufügen. GBMs werden häufig verwendet, um den Vorhersagefehler zu minimieren und so ein leistungsfähiges Modell aufzubauen, was durch Minimierung der Rest- oder Verlustfunktion erreicht werden kann. Dieser Algorithmus ist weit verbreitet und wird häufig verwendet, um den Vorhersagefehler starker Modelle, die mit schwachen Lernenden erstellt wurden, wie z. B. Entscheidungsbäumen, zu minimieren.

Im Zeitalter von Big Data ist die Größe der Datensätze dramatisch gewachsen und herkömmliche GBMs lassen sich aufgrund ihrer hohen Rechen- und Speicherkosten nur schwer effektiv skalieren.

  • Zum Beispiel führt die horizontale Split-Decision-Tree-Wachstumsstrategie zwar zu einem ausgeglichenen Baum, führt aber häufig zu einer Verringerung der Unterscheidungsfähigkeit des Modells, während sie sich bei der blattbasierten Wachstumsstrategie verbessern kann Aufgrund der Genauigkeit kann es leicht zu einer Überanpassung kommen.
  • Darüber hinaus müssen die meisten GBM-Implementierungen den gesamten Datensatz durchlaufen, um Gradienten in jeder Iteration zu berechnen, was bei großen Datenmengen ineffizient ist. Daher ist ein Algorithmus erforderlich, der große Datenmengen effizient verarbeiten und gleichzeitig die Modellgenauigkeit beibehalten kann.

Um diese Probleme zu lösen, hat Microsoft 2017 LightGBM (Light Gradient Boosting Machine) auf den Markt gebracht, ein schnelleres Framework zur Gradientensteigerung mit geringerem Speicherverbrauch und höherer Leistung.

Offizielle Lernadresse: https://lightgbm.readthedocs.io/en/stable/

Prinzip von LightGBM

1. Entscheidungsbaumalgorithmus basierend auf Histogramm:

  • Prinzip: LightGBM verwendet Histogrammoptimierungstechnologie, um Merkmalswerte zu ermitteln ​​werden in bestimmte Bins (d. h. Buckets des Histogramms) diskretisiert, wodurch die Datenmenge reduziert wird, die berechnet werden muss, wenn ein Knoten geteilt wird.
  • Vorteile: Diese Methode kann die Berechnungsgeschwindigkeit erhöhen und gleichzeitig den Speicherverbrauch reduzieren.
  • Implementierungsdetails: Für jedes Feature verwaltet der Algorithmus ein Histogramm, um die statistischen Informationen des Features in verschiedenen Buckets aufzuzeichnen. Bei der Knotenaufteilung können die Informationen dieser Histogramme direkt genutzt werden, ohne dass alle Daten durchlaufen werden müssen.

2. Blattweise Baumwachstumsstrategie mit Tiefenbeschränkung:

  • Prinzip: Im Gegensatz zur herkömmlichen horizontalen Aufteilung besteht die blattweise Wachstumsstrategie darin, jedes Mal den Knoten mit dem größten Teilungsgewinn aus allen aktuellen Blattknoten auszuwählen. Teilt.
  • Vorteile: Diese Strategie kann dazu führen, dass sich der Entscheidungsbaum stärker auf die abnormalen Teile der Daten konzentriert, was normalerweise zu einer besseren Genauigkeit führt.
  • Nachteile: Es kann leicht zu einer Überanpassung kommen, insbesondere wenn die Daten Rauschen enthalten.
  • Verbesserungsmaßnahmen: LightGBM verhindert eine Überanpassung durch die Festlegung einer maximalen Tiefenbegrenzung.

3. Einseitige Gradientenstichprobe (GOSS):

  • Prinzip: Bei großen Gradientenstichproben im Datensatz behält der GOSS-Algorithmus nur einen Teil der Daten bei (normalerweise Stichproben mit großen Gradienten), wodurch die Menge reduziert wird Berechnung ohne Verlust von zu vielen Informationen.
  • Vorteile: Diese Methode kann das Training ohne nennenswerten Genauigkeitsverlust beschleunigen.
  • Anwendungsszenarien: Besonders geeignet für Situationen, in denen die Datenverzerrung schwerwiegend ist.

4. Sich gegenseitig ausschließende Funktionsbündelung (EFB):

  • Prinzip: EFB ist eine Technologie, die die Anzahl der Funktionen reduziert und die Recheneffizienz verbessert. Es kombiniert sich gegenseitig ausschließende Merkmale (d. h. Merkmale, die niemals gleichzeitig ungleich Null sind), um die Merkmalsdimensionalität zu reduzieren.
  • Vorteile: Verbesserte Speichernutzungseffizienz und Trainingsgeschwindigkeit.
  • Implementierungsdetails: Durch die gegenseitige Ausschließlichkeit von Features kann der Algorithmus mehr Features gleichzeitig verarbeiten und so die tatsächliche Anzahl der verarbeiteten Features reduzieren.

5. Unterstützt paralleles und verteiltes Lernen:

  • Prinzip: LightGBM unterstützt Multithread-Lernen und kann mehrere CPUs für paralleles Training verwenden.
  • Vorteile: Verbessert die Trainingsgeschwindigkeit auf Multi-Core-Prozessoren erheblich.
  • Skalierbarkeit: Es unterstützt auch verteiltes Lernen und kann mehrere Maschinen zum gemeinsamen Trainieren von Modellen verwenden.

6. Cache-Optimierung:

  • Prinzip: Die Art und Weise des Datenlesens wird optimiert und es können mehr Caches verwendet werden, um den Datenaustausch zu beschleunigen.
  • Vorteile: Insbesondere bei großen Datenmengen kann die Cache-Optimierung die Leistung deutlich verbessern.

7. Unterstützt mehrere Verlustfunktionen:

  • Funktionen: Zusätzlich zu häufig verwendeten Regressions- und Klassifizierungsverlustfunktionen unterstützt LightGBM auch benutzerdefinierte Verlustfunktionen, um unterschiedliche Geschäftsanforderungen zu erfüllen.

8. Regularisierung und Bereinigung:

  • Prinzip: L1- und L2-Regularisierungsterme werden bereitgestellt, um die Modellkomplexität zu kontrollieren und eine Überanpassung zu vermeiden.
  • Implementierung: Die Backward-Pruning-Strategie wurde implementiert, um eine Überanpassung weiter zu verhindern.

9. Modellinterpretierbarkeit:

  • Merkmale: Da es sich um ein auf Entscheidungsbäumen basierendes Modell handelt, verfügt LightGBM über eine gute Modellinterpretierbarkeit und kann die Entscheidungslogik des Modells anhand der Merkmalswichtigkeit und anderer Methoden verstehen.

Funktionen von LightGBM

Effizienz

  • Geschwindigkeitsvorteil: Durch Histogrammoptimierung und blattweise Wachstumsstrategie verbessert LightGBM die Trainingsgeschwindigkeit erheblich und gewährleistet gleichzeitig Genauigkeit.
  • Speicherverbrauch: LightGBM benötigt weniger Speicher als andere GBM-Implementierungen, wodurch größere Datensätze verarbeitet werden können.

Genauigkeit

  • Best-First-Wachstumsstrategie: Die von LightGBM übernommene blattweise Wachstumsstrategie kann die Daten genauer anpassen und normalerweise eine bessere Genauigkeit erzielen als die horizontale Segmentierung.
  • Methoden zur Vermeidung von Überanpassung: Durch Festlegen einer maximalen Tiefenbegrenzung und Rückwärtsbeschneidung kann LightGBM die Modellgenauigkeit verbessern und gleichzeitig Überanpassung vermeiden.

Skalierbarkeit

  • Paralleles und verteiltes Lernen: LightGBM ist so konzipiert, dass es Multithreading und verteiltes Rechnen unterstützt, wodurch die Rechenleistung moderner Hardware voll ausgenutzt werden kann.
  • Multiplattform-Unterstützung: LightGBM kann auf mehreren Betriebssystemen wie Windows, macOS und Linux ausgeführt werden und unterstützt mehrere Programmiersprachen wie Python, R und Java.

Benutzerfreundlichkeit

  • Parametereinstellung: LightGBM bietet eine Fülle von Parameteroptionen, um Benutzern die Anpassung an spezifische Probleme zu erleichtern.
  • Vorab trainiertes Modell: Benutzer können mit einem vorab trainierten Modell beginnen, um ihren Modellierungsprozess zu beschleunigen.
  • Modellinterpretationstools: LightGBM bietet Tools zur Bewertung der Funktionsbedeutung, um Benutzern das Verständnis des Entscheidungsprozesses des Modells zu erleichtern.

Bibliothek importieren

In [1]:

import numpy as npimport lightgbm as lgbfrom sklearn.model_selection import train_test_split, RandomizedSearchCVfrom sklearn.datasets import load_irisfrom sklearn.metrics import accuracy_scoreimport warningswarnings.filterwarnings("ignore")

Daten laden

Den öffentlichen Iris-Datensatz laden:

In [2]:

# 加载数据集data = load_iris()X, y = data.data, data.targety = [int(i) for i in y]# 将标签转换为整数

In. [3]:

X[:3]

Raus [3]:

array([[5.1, 3.5, 1.4, 0.2], [4.9, 3. , 1.4, 0.2], [4.7, 3.2, 1.3, 0.2]])

In [4]:

y[:10]

Out[4]:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Teilen Sie die Daten

In [5]:

# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

Erstellen Sie gleichzeitig a LightGBM-Datensatz:

In [6]:

lgb_train = lgb.Dataset(X_train, label=y_train)

Parametereinstellungen

In [7]:

# 设置参数范围param_dist = {'boosting_type': ['gbdt', 'dart'],# 提升类型梯度提升决策树(gbdt)和Dropouts meet Multiple Additive Regression Trees(dart)'objective': ['binary', 'multiclass'],# 目标;二分类和多分类'num_leaves': range(20, 150),# 叶子节点数量'learning_rate': [0.01, 0.05, 0.1],# 学习率'feature_fraction': [0.6, 0.8, 1.0],# 特征采样比例'bagging_fraction': [0.6, 0.8, 1.0],# 数据采样比例'bagging_freq': range(0, 80),# 数据采样频率'verbose': [-1]# 是否显示训练过程中的详细信息,-1表示不显示}

Zufällige Suche nach Parameteranpassung

In [8]:

# 初始化模型model = lgb.LGBMClassifier()# 使用随机搜索进行参数调优random_search = RandomizedSearchCV(estimator=model, param_distributinotallow=param_dist, # 参数组合 n_iter=100,  cv=5, # 5折交叉验证 verbose=2,  random_state=42,  n_jobs=-1)# 模型训练random_search.fit(X_train, y_train)Fitting 5 folds for each of 100 candidates, totalling 500 fits

Beste Parameterkombination ausgeben:

In [9]:

# 输出最佳参数print("Best parameters found: ", random_search.best_params_)Best parameters found:{'verbose': -1, 'objective': 'multiclass', 'num_leaves': 87, 'learning_rate': 0.05, 'feature_fraction': 0.6, 'boosting_type': 'gbdt', 'bagging_freq': 22, 'bagging_fraction': 0.6}

Modellierung mit optimalen Parametern

In [10]:

# 使用最佳参数训练模型best_model = random_search.best_estimator_best_model.fit(X_train, y_train)# 预测y_pred = best_model.predict(X_test)y_pred = [round(i) for i in y_pred]# 将概率转换为类别# 评估模型print('Accuracy: %.4f' % accuracy_score(y_test, y_pred))Accuracy: 0.9667

Das obige ist der detaillierte Inhalt vonLightGBM tatsächlicher Kampf + zufällige Suchparameteranpassung: Genauigkeitsrate 96,67 %. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn