PYTHON ヘルプ

lightgbm Python(動作の仕組み:開発者ガイド)

公開済み 2025年3月5日
共有:

イントロダクション

LightGBMは、Light Gradient Boosting Machineの略です。勾配ブースティングフレームワークや勾配ブースティングアルゴリズムの中で、LightGBMは大規模データ処理のためにMicrosoftによって開発された効率的で高速な勾配ブースティングフレームワークとして高い精度とパフォーマンスを保証する先進的なアルゴリズムを備えています。 その強みは、トレーニング速度が速く、大規模なデータセットへの容易なスケーリング、高次元データの強力な処理です。次元のデータ。 LightGBMは、そのリーフワイズツリー成長からの優れた一般化を提供することにより、回帰、分類、ランク付けなどのさまざまな機械学習タスクで非常に優れたパフォーマンスを発揮してきました。

これは欠落したデータを自動的に処理しますが、それがIronPDF、PDFドキュメントの作成、編集、読み取りができるPythonライブラリで役立つことがわかります。これにより、データ分析結果から直接プロフェッショナルなPDFレポートを生成するためのいくつかの方法が提供されます。 IronPDFは、開発者がHTML、画像、または生のテキストからPDFドキュメントを作成するのを助けるライブラリです。 ヘッダーやフッター、透かしなどの機能が追加されます。 Python .NETを使用してギャップを埋め、LightGBMが分析を支え、さらにIronPDFを使用して洞察を詳細でリッチにフォーマットされたPDFレポートに変換して成果を発表することで、データサイエンティストは多くのことができます。 この統合により、強力な予測モデリングと包括的なレポートを備えたデータ駆動型プロジェクトのためのエンドツーエンドのソリューションが作成されます。

lightgbm python とは何ですか?

LightGBMは、高性能のためにMicrosoftで開発されたオープンソースの勾配ブースティングフレームワークです。 それは、効率的でスケーラブルであることを目指し、多くの機能を持つ何百万ものインスタンスを処理します。 LightGBMアルゴリズムは、ヒストグラムベースの決定木学習やリーフ単位の木の成長といったタスクにおいて、GBMの速度と性能をさらに向上させるための高度な技術を実装するように設計されています。 その後、従来の勾配ブースティング方法と比較して、より速いトレーニング時間と低いメモリ使用量を実現できます。

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

それは、回帰、分類、ランキングなどの多くの機械学習タスクをサポートし、欠損データの処理を強くサポートします。 一般的に、LightGBMは非常に柔軟で、モデルのパフォーマンスを向上させるために微調整やカスタマイズが可能な多くのハイパーパラメーターを提供しています。 それはPythonと簡単に連携でき、迅速かつ正確な予測タスクを構築するためにデータサイエンティストや機械学習の実践者の間で非常に有名です。

lightgbm Pythonの特徴

LightGBMはPythonにおけるLight Gradient Boosting Machineの略です。 それは、広範なデータにおける効果性、規模、および性能で知られています。 以下に示すのは、その魅力的な主な機能のいくつかです:

高効率: 訓練のためのヒストグラムベースのアルゴリズムは、通常、より高速なトレーニングと低メモリ消費を提供します。 数百万のデータポイントと機能を持つ大規模なセットを効率的に処理することが可能です。

スケーラビリティ: これは分散学習をサポートしており、複数のマシンにわたってスケールすることが可能です。LightGBMは最適化された並列処理をサポートしており、複数のCPUコアを使用して高速にトレーニングを行います。

リーフワイズツリーグロース: リーフ単位で木を成長させる(ベストファースト)これは、レベル単位の成長よりも深いツリーといくつかのタスクに対してより良い精度につながる可能性があります。

さまざまなタスクをサポート: 目的関数と評価基準の豊富なコレクションを提供します。 さらに、それは回帰、分類、ランキング、および他の学習タスクを処理します。

組み込みの欠損データ処理機能: この機能は自動的に欠損値を処理し、正則化および正則化パラメーターの前処理の手間を省きます。

L1(投げ縄)とL2(リッジ)正則化は過学習を防ぎ、モデルがより正確に一般化されるようにします。

カテゴリカルフィーチャサポート: カテゴリカルフィーチャに直接対応するため、ワンホットエンコードする必要がなくなり、データセットの次元が削減されます。

アーリーストッピング: 検証性能に基づいて早期に停止させ、過学習を避けてトレーニング時間を短縮します。

ハイパーパラメーターチューニング: 学習率、max_depth、葉の数など、モデルのパフォーマンスを向上させるために微調整できるハイパーパラメーターの調整に大きなスペースがあります。

特徴の重要性: 特徴選択とモデルの解釈可能性のために、各特徴の重要性を測定するツールを提供します。

柔軟でカスタマイズ可能: これにより、カスタムの目的関数と評価指標を使用でき、モデル設計においてユーザーに柔軟性を提供します。

Pythonエコシステムとのネイティブでシームレスな統合: データサイエンスの他の人気のあるライブラリであるNumPy、pandas、scikit-learnとシームレスに統合でき、既存のワークフローにも簡単に統合することができます。

lightgbm Python を作成して設定する

PythonでLightGBMモデルを設定および構成するには、データの準備、モデルの構築、トレーニング、評価のいくつかのステップが含まれます。 手順は以下の通りです:

LightGBMをインストールする

まず、LightGBMがインストールされていることを確認する必要があります。 pipを通じて、コマンドラインでインストールできます:

pip install lightgbm
pip install lightgbm
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install lightgbm
$vbLabelText   $csharpLabel

ライブラリをインポートする

LightGBMやデータ処理と評価に使用する他のライブラリを含む、すべての必須ライブラリをインポートします。

import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import TryCast(lightgbm, lgb) import TryCast(numpy, np) from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error
$vbLabelText   $csharpLabel

データを準備する

まず、ボストン住宅データセットを使用した例を見てみましょう:

# Load the Boston housing dataset
boston = load_boston()
X = boston.data
y = boston.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Load the Boston housing dataset
boston = load_boston()
X = boston.data
y = boston.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
#Load the Boston housing dataset
#Split the dataset into training and testing sets
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'boston = load_boston() X = boston.data y = boston.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
$vbLabelText   $csharpLabel

LightGBMのためのデータセットを作成する

LightGBMは、訓練のためのDatasetと呼ばれる独自のデータ構造を持っています。

# Create Dataset for training and testing sets
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Create Dataset for training and testing sets
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
#Create Dataset for training and testing sets
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
$vbLabelText   $csharpLabel

パラメーターを設定する

次に、モデルパラメータを設定してください。 以下は構成例です:

# Set parameters
params = {
    'objective': 'regression',  # Objective function
    'metric': 'mse',  # Evaluation metric
    'boosting_type': 'gbdt',  # Type of boosting (Gradient Boosting Decision Tree)
    'num_leaves': 31,  # Number of leaves in one tree
    'learning_rate': 0.05,  # Learning rate
    'feature_fraction': 0.9,  # Fraction of features to be used for training
    'bagging_fraction': 0.8,  # Fraction of data to be used for each iteration
    'bagging_freq': 5,  # Frequency for bagging
    'verbose': -1  # Suppress warnings
}
# Set parameters
params = {
    'objective': 'regression',  # Objective function
    'metric': 'mse',  # Evaluation metric
    'boosting_type': 'gbdt',  # Type of boosting (Gradient Boosting Decision Tree)
    'num_leaves': 31,  # Number of leaves in one tree
    'learning_rate': 0.05,  # Learning rate
    'feature_fraction': 0.9,  # Fraction of features to be used for training
    'bagging_fraction': 0.8,  # Fraction of data to be used for each iteration
    'bagging_freq': 5,  # Frequency for bagging
    'verbose': -1  # Suppress warnings
}
#Set parameters
'INSTANT VB TODO TASK: The following line could not be converted:
params = {
$vbLabelText   $csharpLabel

モデルをトレーニングする

次に、trainメソッドを使用してLightGBMモデルをトレーニングします:

# Train the model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
# Train the model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
#Train the model
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'num_round = 100 bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
$vbLabelText   $csharpLabel

予測を立てる

次に、訓練されたモデルを使用してテストセットの予測を行います。

# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
#Make predictions
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'preds = bst.predict(X_test, num_iteration=bst.best_iteration)
$vbLabelText   $csharpLabel

モデルを評価する

Lightgbmは、複数の弱い学習者を組み合わせて堅牢なモデルを作成します。 手元の問題に適した指標でモデルを評価する、例えば平均二乗誤差のように:

# Calculate mean squared error
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Calculate mean squared error
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
#Calculate mean squared error
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'mse = mean_squared_error(y_test, preds) print(f"Mean Squared Error: {mse}")
$vbLabelText   $csharpLabel

lightgbm Python(動作の仕組み:開発者向けガイド):図2 - コンソール出力例

モデルを保存および読み込み

訓練されたモデルをファイルに保存し、再訓練が必要な場合は再び読み込むことができます。

# Save lightgbm models
bst.save_model('lightgbm_model.txt')
# Load the model
bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
# Save lightgbm models
bst.save_model('lightgbm_model.txt')
# Load the model
bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
#Save lightgbm models
#Load the model
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'bst.save_model('lightgbm_model.txt') bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
$vbLabelText   $csharpLabel

lightgbm Python(開発者向けガイド: 仕組み): 図3 - 上記モデルからの出力データの例

はじめに

まず、両方のライブラリをセットアップし、LightGBMでデータ分析を行い、IronPDFを使用してPDFレポートを生成する必要があります。 これらのツールをアプリケーションに統合するための詳細なガイドラインです。

IronPDFとは何ですか?

強力で優れたIronPDF for Pythonパッケージを使用して、PDFの作成、編集、および表示を可能にします。 これは、プログラマーが既存のPDFを操作し、HTMLファイルをPDFファイルに変換する方法を提供し、その他のプログラムベースのPDF操作を行うことができます。 IronPDFは、高品質なPDF形式のレポートを生成する際の柔軟性と使いやすさをもたらします。 動的なPDFの作成と処理を必要とするアプリケーションにとって効率的になります。

lightgbm Python(開発者のためのガイド: 動作の仕組み): 図4 - IronPDF: Python PDFライブラリ

HTML から PDF への変換

IronPDFを使用すると、どんなに古いHTML情報からでもPDFドキュメントを作成できます。 以下により、最新のHTML5、CSS3、およびJavaScriptの力を完全に活用したウェブコンテンツを、見事で芸術的なPDF出版物に変えることが可能になります。

PDFを作成および修正

プログラムによって作成されたテキスト、画像、表、およびその他の素材を含む新しいPDFドキュメントを生成できます。 IronPDFは、既存のPDFドキュメントを開いて編集し、さらにカスタマイズすることもできます。 PDFドキュメントに含まれるコンテンツを必要に応じて追加、変更、または削除することができます。

複雑なデザインとスタイリング

これは、PDFのコンテンツをCSSでスタイリングすることによって達成されます。 したがって、さまざまなフォント、色、その他のデザインスタイルを使用した複雑なレイアウトを広範な範囲でサポートします。 それだけでなく、JavaScriptの助けを借りて、PDFは動的コンテンツをサポートし、HTMLコンテンツをレンダリングすることが可能になります。

IronPDF をインストール

IronPDFはPipを使用してインストールできます。インストールするためのコマンドは次のとおりです:

pip install ironpdf
pip install ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install ironpdf
$vbLabelText   $csharpLabel

lightgbmとIronPDFを組み合わせる

まず、必要なライブラリをインポートし、その後に情報を読み込みます。 この例では、ボストン住宅データセットを使用します。

import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Load data
boston = load_boston()
X = boston.data
y = boston.target
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create Dataset
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Set parameters
params = {
    'objective': 'regression',
    'metric': 'mse',
    'boosting_type': 'gbdt',
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': -1
}
# Train model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data])
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Evaluate model
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Create a PDF document
iron_pdf =  ChromePdfRenderer()
# Create HTML content
# Create HTML content
html_content = f"""
<html>
<head>
    <title>LightGBM Model Report</title>
</head>
<body>
    <h1>LightGBM Model Report</h1>
    <p>Mean Squared Error: {mse}</p>
    <h2>Predictions</h2>
    <ul>
        {''.join([f'<li>{pred}</li>' for pred in preds])}
    </ul>
</body>
</html>
"""
pdf=iron_pdf.RenderHtmlAsPdf(html_content)
# Save the PDF document
pdf.SaveAs("LightGBM_Report.pdf")
print("PDF document generated successfully.")
import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Load data
boston = load_boston()
X = boston.data
y = boston.target
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create Dataset
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Set parameters
params = {
    'objective': 'regression',
    'metric': 'mse',
    'boosting_type': 'gbdt',
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': -1
}
# Train model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data])
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Evaluate model
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Create a PDF document
iron_pdf =  ChromePdfRenderer()
# Create HTML content
# Create HTML content
html_content = f"""
<html>
<head>
    <title>LightGBM Model Report</title>
</head>
<body>
    <h1>LightGBM Model Report</h1>
    <p>Mean Squared Error: {mse}</p>
    <h2>Predictions</h2>
    <ul>
        {''.join([f'<li>{pred}</li>' for pred in preds])}
    </ul>
</body>
</html>
"""
pdf=iron_pdf.RenderHtmlAsPdf(html_content)
# Save the PDF document
pdf.SaveAs("LightGBM_Report.pdf")
print("PDF document generated successfully.")
import TryCast(lightgbm, lgb) import TryCast(numpy, np) _ 'ignore') License.LicenseKey = "";
	From sklearn.datasets import load_boston
	From sklearn.model_selection import train_test_split
	From sklearn.metrics import mean_squared_error
	From ironpdf import * import warnings warnings.filterwarnings(
#Load data
#Split data
#Create Dataset
#Set parameters
#Train model
#Make predictions
#Evaluate model
#Create a PDF document
#Create HTML content
#Create HTML content
#Save the PDF document
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'boston = load_boston() X = boston.data y = boston.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test, reference=train_data) params = { 'objective': 'regression', 'metric': 'mse', 'boosting_type': 'gbdt', 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9, 'bagging_fraction': 0.8, 'bagging_freq': 5, 'verbose': -1 } num_round = 100 bst = lgb.train(params, train_data, num_round, valid_sets=[test_data]) preds = bst.predict(X_test, num_iteration=bst.best_iteration) mse = mean_squared_error(y_test, preds) print(f"Mean Squared Error: {mse}") iron_pdf = ChromePdfRenderer() html_content = f"<html>
'<head>
'    <title>LightGBM Model Report</title>
'</head>
'<body>
'    <h1>LightGBM Model Report</h1>
'    <p>Mean Squared Error: {mse}</p>
'    <h2>Predictions</h2>
'    <ul>
'        {''.join([f'<li>{pred}</li>' for pred in preds])}
'    </ul>
'</body>
'</html>" pdf=iron_pdf.RenderHtmlAsPdf(html_content) pdf.SaveAs("LightGBM_Report.pdf") print("PDF document generated successfully.")
$vbLabelText   $csharpLabel

LightGBMとIronPDFの統合には、まずLightGBMを使用した分析が含まれ、その後、IronPDFをPDFレポート生成に応用するためにPythonライブラリが使用されます。 最初はLightGBMのインストール、データセットの読み込み、前処理、トレインテストセットへの分割、およびデータを効率的に処理するのに役立つDMatrixオブジェクトの作成です。 次に、LightGBMモデルのパラメーターが設定され、目的関数やその他の各種パラメーターが続きます。 モデルがトレーニングされ、そのモデルを使用して、テストセットの予測が行われ、平均二乗誤差などの指標に対して測定されます。

lightgbm Python(仕組み:開発者のためのガイド):図5 - コンソール出力例

IronPDFというPythonライブラリは、PDFを生成します。 出力HTMLには、分析、モデル、およびパフォーマンス予測結果が含まれています。 このHTMLコンテンツは、クラスを介してPDFドキュメントに変換されますRenderHtmlAsPdf(HTMLをPDFとしてレンダリング)IronPDFライブラリのファイルを希望の場所に保存します。 これにより、機械学習モデルの開発と評価から、効率的なデータ洞察のコミュニケーションを可能にする詳細なPDFレポートの生成まで、スムーズなワークフローが実現されます。

lightgbm Python(動作原理: 開発者向けガイド): 図6 - LightGBMモデルを使用してデータを生成し、IronPDFでそれを提示する例のレポート

結論

開発者は、LightGBMとIronPDFをPythonで組み合わせて、複雑なデータ分析を行い、プロフェッショナルなレポートを生成することができます。 その特性により、LightGBMは複雑な機械学習の問題を含む大規模なデータセットで高い性能を発揮します。 LightGBMの結果は、IronPDFを使用してプロフェッショナル品質のPDFレポートを生成するためにPython .NETで使用できます。

このインターフェースは、データ処理とモデル検証から文書化やプレゼンテーションまでのワークフローを作成することで、利害関係者とのインサイトの共有を容易にします。 LightGBMとIronPDFは相乗効果を発揮し、データ駆動プロジェクト、ビジネス分析、さらには学術研究において、聴衆に調査結果を一貫して提示することでより強力な能力への道を切り開きます。

統合するIronPDF以下のコンテンツを日本語に翻訳してください:Iron Software製品を通じて、クライアントとそのユーザーに豊富な機能を備えた高性能なソフトウェアソリューションを提供します。 これにより、プロジェクトの作業とプロセスを最適化することもできます。

機能に加えて、IronPDFには充実したドキュメント、活発なコミュニティ、定期的なアップデートがあります。 すべてを踏まえて、Iron Softwareは現代のソフトウェア開発プロジェクトにおける信頼できるパートナーとして機能します。 開発者は、IronPDFのすべての機能をテストすることができます無料試用. その後、ライセンス料金は$749からとなります。

リーガン・パン

リーガン・パン

ソフトウェアエンジニア

 LinkedIn

レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
Bottle Python ((開発者向けガイド:動作の仕組み))
次へ >
PyJWT Python(その仕組み:開発者向けガイド)