2021-05-30今回は機械学習ライブラリのscikit-learnを利用し、ニューラルネットワークのアルゴリズムに基づいて回帰分析を行う方法について書きます。本記事における用語の説明まずはいくつか用語の説明をします。知っているという方は読み飛ばして下さい。回帰分析とは対象のデータから特定の数値を予測するための統計的手法のことです。例としては、株価の予測(金利や為替などの情報から株価を予測)などが挙げられます。ニューラルネットワークとはAI関連技術である機械学習の代表的な手法の一つです。基本単位のニューロンがいくつも連結することでネットワークを構築し、これを利用して様々な予測を行います。ニューラルネットワークの内部は一番最初にデータが入力される入力層、計算結果を出力する出力層、入力層と出力層の間の隠れ層のどれかに分類されます。各層では入力された値を基に計算を行い、その計算結果を次の層のニューロンへ入力するという流れを入力層から出力層まで繰り返します。各ニューロンにはどの入力を重要視するかを決定する重みがそれぞれ設定されており、重みの値を調整することで望ましい出力を得ることが可能です。ニューラルネットワークのメリット、デメリットはそれぞれ以下のようになります。メリット:層やニューロンの数を増やすことで容易にモデルを拡張できる(層やニューロンの数が多いほど、高い性能が得られやすい)デメリット:構造が複雑でブラックボックス化しやすく、何故その結果が得られるのかがわかりにくい実際にプログラムを作成してみるそれでは実際にニューラルネットワークのアルゴリズムに基づいて回帰分析を行うプログラムを作成してみます。プログラム作成の手順ここでは、以下の手順で処理を実装します。実験用のデータセットを用意するデータセットの一部を利用して学習(モデルの構築)を行う構築したモデルを用いて残りのデータセットに対する予測を行う今回に限らず、機械学習のモデルを構築する際には上記手順で実行することが多いです。使用する実験用データセットscikit-learnには、学習やテストで使用する実験用のデータセットが用意されているため、今回はその中の一つのボストンの住宅価格データ(load_boston)を使用します。使用するデータセットの概要は以下の通りです。用途:回帰データ件数:506データ次元数:13ドキュメント:sklearn.datasets.load_bostonボストン市内の地域ごとの犯罪率や税率などの情報(13項目)を入力データとしてその地域の住宅価格を予測します。モデル構築に使用するクラスscikit-learnには、ニューラルネットワークのアルゴリズムに基づいて回帰分析の処理を行うMLPRegressorクラスが存在するため、今回はこれを利用します。MLPRegressorの主なパラメータは以下の通りです。乱数のシードを指定するMLPRegressorはsklearn.neural_networkからインポートします。上記の手順に従ってプログラムを作成します。使用する言語はPythonです。test_y)))このプログラムを実行すると以下の出力結果が得られます。0.558631848559529出力結果の最後の行は「決定係数」の値です。決定係数とは、回帰分析において正解の値と予測値の誤差を算出した指標であり、その値が1.0に近いほど良い予測性能であると評価されます。一般的に決定係数が0.6以上あれば予測モデルとして一定の性能を持つとされているため、上記のプログラムで構築したモデルは若干予測の性能に不安があると判断できます。パラメータ設定などを工夫する必要がありそうです。@htt_mdk・ITエンジニア・プログラミング関連の情報をメインに発信していきます。ProDesigns。