XGBoost

Pythonトップライブラリ2018

Pythonは、学習初期でも先人の作ったライブラリを利用することで、高速に開発が可能になります。 Pythonライブラリを管理する PyPi.org では、現在 100万以上のライブラリが公開され、現在も増加中です。 前回の記事は2018年の大人気のライブラリを紹介します。   年末でKdnuggetsがGithubの「星」と投稿者の人数とコメント数からトップ15のライブラリを発表しました。下記の図はGithubの「星」と投稿者の人数で表します。ては、ライブラリを軽いに紹介します。 1 – TensorFlow (投稿者 – 1757, コメント数 – 25756, 星 – 116765) Googleの機械学習/ディープラーニング/ネットワークライブラリです。柔軟なアーキテクチャにより、1つのAPIを使用してデスクトップ、サーバー、またはモバイルデバイスの1つ以上のCPUまたはGPUに計算を展開できます。またコードはやや書きにくいのが特徴になります。PyTorchおよびChainerの利点はDefine by Run(動的計算グラフ)と呼ばれる特徴です。Define by Runは入力データのサイズや次元数に合わせてニューラルネットワークの形や計算方法を変更することができます。       2 – pandas (投稿者  – 1360, コメント数 – 18441, 星 – 17388) 機械学習やディープラーニングの前処理のために、データの集計をするライブラリになります。数値や時系列のデータの操作や、データ構造をいじったりすることができます。また最近では、可視化も可能になってきています。     3 – scikit-learn (投稿者 – 1218, コメント数 – 23509, 星 – 32326) NumPy, SciPy や Matplotlib と互換性を持つように開発されてクラスタリングや回帰、分類器、次元圧縮、データの前処理をはじめとする、機械学習のアルゴリズムを幅広く実装しているライブラリです。   …

Pythonトップライブラリ2018 Read More »

PythonでXgboost

XGBoostは、最近人気のある機械学習アルゴリズムの1つです。 他の機械学習アルゴリズムよりも優れた結果をもたらすことはよく知られています。 XGBoostとは 複数の弱学習器を組み合わせることで強学習器を作る学習手法です。モデル結果は、前の瞬間の結果に基づいて重み付けされます。基本的に内部で行われていることは決定木を複数個作り、学習結果の修正を行っています。以前紹介したランダムフォレストとは違い、学習結果の修正が入っています。正しく分類されたインスタンスはますます重みが小さくなり、正しく分類されないインスタンスはますます重みが大きくなり続けます。最終的に、信頼度の重み付け平均の結果を用いて、最終的なモデルを作ります。   XGBoostの主な特徴 スピードとパフォーマンス:もともとC ++で書かれていて、他のアルゴリズムよりも高速です。 コアアルゴリズムは並列化可能:コアXGBoostアルゴリズムは並列化の恩恵が受けやすく、マルチコアコンピュータの能力を活用できます。 また、GPUやコンピュータのネットワークにも並列化が可能で、非常に大きなデータセットでも訓練が高速に可能です。 一貫して他のアルゴリズム手法よりも優れている事が多いです。さまざまなマシン学習ベンチマークデータセットでより優れたパフォーマンスを示しています。 幅広いチューニングパラメータ:XGBoost内部でクロスバリデーション、正則化、ユーザ定義の目的関数、欠損値、ツリーパラメータ、scikit-learn互換APIなどのパラメータがあります。 では、XGBoostで回帰問題を解きましょう。   サンプルデータのロード   from sklearn.datasets import load_boston boston = load_boston() print(boston.keys()) print(boston.feature_names) print(boston.data.shape)   dict_keys([‘data’, ‘target’, ‘feature_names’, ‘DESCR’, ‘filename’]) [‘CRIM’ ‘ZN’ ‘INDUS’ ‘CHAS’ ‘NOX’ ‘RM’ ‘AGE’ ‘DIS’ ‘RAD’ ‘TAX’ ‘PTRATIO’  ‘B’ ‘LSTAT’] (506, 13)   import pandas as pd data = pd.DataFrame(boston.data) …

PythonでXgboost Read More »