ホームページ > バックエンド開発 > Python チュートリアル > Python で回帰分析にニューラル ネットワークを使用するにはどうすればよいですか?

Python で回帰分析にニューラル ネットワークを使用するにはどうすればよいですか?

王林
リリース: 2023-06-05 12:21:18
オリジナル
2253 人が閲覧しました

人工知能の発展に伴い、ニューラル ネットワークは回帰分析を含む多くの分野で優れたパフォーマンスを示しています。 Python 言語は機械学習やデータ分析タスクによく使用され、Tensorflow や Keras などの多くのオープンソース機械学習ライブラリを提供します。この記事では、Python で回帰分析にニューラル ネットワークを使用する方法を紹介します。

1.回帰分析とは何ですか?

統計学における回帰分析は、連続変数の数学的モデルを使用して独立変数と従属変数の間の関係を記述することによって因果関係を分析する方法です。回帰分析では、通常、この関係を記述するために線形方程式が使用されます。例:

y = a bx

ここで、y は従属変数、x は独立変数、a とb は円です。括弧内の定数は、線形関係の切片と傾きを表します。回帰分析では、線形方程式を当てはめることによって従属変数の値を予測できます。複雑または非線形の関係を持つデータの場合は、より複雑なモデルを使用できます。

2. 回帰分析におけるニューラル ネットワークの応用

ニューラル ネットワークは、複数のノードで構成される複雑な数学モデルであり、入力データのパターンとルールを学習して、新しいデータを分析し、予測を行います。回帰分析におけるニューラル ネットワークの応用は、従属変数と独立変数をネットワークに入力し、それらの間の関係を見つけるようにニューラル ネットワークをトレーニングすることによって行われます。

従来の回帰分析とは異なり、ニューラル ネットワークではデータ分析時に事前に線形方程式または非線形方程式を定義する必要がありません。ニューラル ネットワークは、パターンやパターンを自動的に検出し、入力データ セットの詳細に基づいて学習および分析できます。これにより、ニューラル ネットワークは、大規模なデータセット、複雑なパターンと非線形性を持つデータに対して優れたパフォーマンスを発揮できるようになります。

3. 回帰分析に Python を使用する

Python の Scikit-learn と Keras は、ニューラル ネットワークと回帰分析用の多くのツールを提供する 2 つの非常に人気のある Python ライブラリです。ここでは、Keras の Sequential モデルを使用して単純なニューラル ネットワークを構築し、Scikit-learn の train_test_split メソッドを使用して既知のデータセットを分割してモデルを評価します。

ステップ 1: データの前処理

ニューラル ネットワークを回帰分析に使用し始める前に、データを準備する必要があります。この記事では、オンライン学習プラットフォーム Kaggle の燃費データセットを使用します。このデータセットには、米国道路交通安全局からの車両経済燃料データが含まれています。ヤード、気筒数、排気量、馬力、加速度など、データに含まれる要素はすべて燃費に影響します。

Pandas ライブラリを使用してデータセットを読み取り、処理します:

import pandas as pd

#导入数据
df = pd.read_csv('auto-mpg.csv')
ログイン後にコピー

ステップ 2: データの前処理

データセットをニューラル ネットワークが処理できるものに変換する必要がありますフォームを読む。 Pandas ライブラリの get_dummies() メソッドを使用して、カテゴリ変数を使用できるバイナリ フィールドに分解します。

dataset = df.copy()
dataset = pd.get_dummies(dataset, columns=['origin'])
ログイン後にコピー

次に、データセットをトレーニング セットと評価するテスト セットに分割する必要があります。私たちのモデル。ここでは、Scikit-learn の train_test_split メソッドを使用することを選択します。

from sklearn.model_selection import train_test_split

train_dataset, test_dataset = train_test_split(dataset, test_size=0.2, random_state=42)

#获取训练集的目标变量
train_labels = train_dataset.pop('mpg')

#获取测试集的目标变量
test_labels = test_dataset.pop('mpg')
ログイン後にコピー

ステップ 3: ニューラル ネットワーク モデルを構築する

Keras の Sequential モデルを使用して、2 つの完全な要素を含むニューラル ネットワーク モデルを構築します。隠れ層を接続し、活性化関数を備えた ReLU 層を使用します。最後に、単一ノードの出力層を使用して燃料効率を予測します。

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]),
    layers.Dense(64, activation='relu'),
    layers.Dense(1)
])
ログイン後にコピー

ステップ 4: モデルのコンパイルとトレーニング

モデルをトレーニングする前に、モデルをコンパイルする必要があります。ここでは、損失関数とオプティマイザー、および評価メトリクスを指定します。

optimizer = keras.optimizers.RMSprop(0.001)

model.compile(loss='mse',
            optimizer=optimizer,
            metrics=['mae', 'mse'])
ログイン後にコピー

次に、fit() メソッドを使用してモデルをトレーニングし、その後の分析のために履歴オブジェクトに保存します。

history = model.fit(
  train_dataset, train_labels,
  epochs=1000, validation_split=0.2, verbose=0,
  callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)])
ログイン後にコピー

ステップ 5: モデルを評価する

最後に、テスト データセットを使用してモデルを評価し、結果を y_pred 変数に保存します。

test_predictions = model.predict(test_dataset).flatten()

print('测试集的平均误差: ', round(abs(test_predictions - test_labels).mean(), 2))
ログイン後にコピー

この例では、使用したモデルは平均誤差約 2.54 の予測結果を生成し、履歴オブジェクトのテスト セットと検証セットで損失が確認できます。

4. まとめ

この記事では、Python でニューラル ネットワークを使用して回帰分析を行う方法を紹介しました。データの前処理から始めて、Keras と Scikit-learn ライブラリを活用してモデルを構築およびトレーニングし、モデルのパフォーマンスを評価しました。ニューラル ネットワークは強力なパフォーマンスを備えており、大規模なデータセットや複雑な非線形問題の処理において非常に高い結果を示します。次の回帰問題では、ニューラル ネットワークを使用して解決してみてはいかがでしょうか。

以上がPython で回帰分析にニューラル ネットワークを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート