予測分析

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 »

線形回帰

前回の記事は複数のクラスタリングのシリーズを説明しました。この記事では、回帰分析のお話になります。 では、線形回帰から始めましょう。線形回帰は、最も基本的なモデルです。しかし拡張してより複雑なデータ動作をモデル化することができます。 線形回帰とは 線形回帰とは、一般的に使用される予測分析方法です。目的変数 と 1 以上の説明変数の間の線形関係を使用して、目的変数を予測する分析です。例えば、過去の価格と売上増加の関係を分析して将来の価格戦略を決定できます。 では、Pythonで線形回帰実験しましょう。 標準的なインポートから始めます。 import matplotlib.pyplot as pltimport seaborn as sns; sns.set()import numpy as np   次は50件のサンプルデータを作成して、散布図を描きます。 rng = np.random.RandomState(1)x = 10 * rng.rand(50)y = 2 * x – 5 + rng.randn(50)plt.scatter(x, y); Scikit-Learn’s のLinearRegressionを利用し、線形回帰を作成します。 from sklearn.linear_model import LinearRegressionmodel = LinearRegression(fit_intercept=True)model.fit(x[:, np.newaxis], y)xfit = np.linspace(0, 10, 1000)yfit = model.predict(xfit[:, np.newaxis])plt.scatter(x, y)plt.plot(xfit, …

線形回帰 Read More »