Pythonを使用してニューラルネットワークをゼロから実装する[例を使用]
公開: 2020-12-07この記事では、スクラッチからニューラルネットワークをトレーニングおよび構築する方法を学習します。
チャーンデータセットを使用してニューラルネットワークをトレーニングします。 ニューラルネットワークのトレーニングは複雑ではありません。 モデルがデータを簡単に取得して障害物なしにトレーニングできるように、データを前処理する必要があります。 次のように進めます。
- Tensorflowをインストールします
- ライブラリのインポート
- データセットをインポートする
- 入力データを変換します
- データを分割する
- モデルを初期化します
- モデルを構築する
- モデルをトレーニングする
- モデルを評価する
解約率は、企業の加入者または特定の期間に中止する傾向のある当事者の尺度です。 このレートは、利益を決定し、新しい顧客を獲得するための計画を立てる上で重要な役割を果たします。 簡単に言えば、企業の成長は解約率で測ることができると言えます。
このデータセットには13の機能がありますが、ユーザーを中止する可能性を予測するために、要件を満たすいくつかの機能のみを使用しています。
世界のトップ大学から機械学習オンラインコースを学びましょう。 マスター、エグゼクティブPGP、または高度な証明書プログラムを取得して、キャリアを迅速に追跡します。
目次
TensorFlowをインストールします
PCまたはラップトップにGPUがない場合はGoogleColabを使用でき、それ以外の場合はJupyterNotebookを使用できます。 システムを使用している場合は、pipをアップグレードしてから、次のようにTensorFlowをインストールします。

画像ソース
ライブラリのインポート
上記のコード行では、プロセスで必要なすべてのライブラリをインポートしました。
Numpy →配列の数学演算を実行するために使用されるライブラリです。
パンダ→データファイルをパンダデータフレームとしてロードし、データを分析します。
Matplotlib →データのグラフをプロットするためにpyplotをインポートしました。
データセットのインポート
データセットはCSV形式であるため、pandas操作を使用してデータセットを読み込みます。 次に、データセットを従属変数と独立変数に分割します。ここで、Xは独立と見なされ、Yは従属と見なされます。
データを変換する
データセットには、地理と性別の2つのカテゴリ機能があります。 これら2つの機能のダミーを作成する必要があるため、 get_dummiesメソッドを使用して、それらを独立機能データに追加します。
ダミーの作成とデータへの連結が完了したら、列車データから元の機能、つまり性別と地理を削除します。

読む:機械学習とニューラルネットワーク
分割データ
サブライブラリmodel_selectionのSklearnから、train_test_splitをインポートします。これは、トレインセットとテストセットを分割するために使用されます。 train_test_split関数を使用して分割を行うことができます。 test_size = 0.3は、テストのために保持する必要があるデータのパーセンテージを示します。
データを正規化する
すべての機能値が同じ範囲内にあることを確認することが重要です。 モデルが機能間の基本的なパターンを学習し、意思決定を行う方法を学習することは困難であるため、 StandardScalerメソッドを使用してデータを同じ範囲に正規化します。
依存関係をインポートする
次に、ディープニューラルネットワークを構築するために必要な機能をインポートします。
モデルを構築する
モデルを作成する時が来ました!。 次に、シーケンシャルモデルを初期化します。 シーケンシャルAPIを使用すると、ほとんどの問題に対してレイヤーごとにモデルを作成できます。
モデルを構築する前に最初に行う必要があるのは、モデルオブジェクト自体を作成することです。 このオブジェクトは、Sequentialと呼ばれるクラスのインスタンスになります。
最初の完全に接続されたレイヤーを追加する
レイヤーの種類とその機能に気付いていない場合は、ニューラルネットワークの概要に関するブログを確認することをお勧めします。このブログでは、知っておくべき概念のほとんどを知ることができます。
つまり、この操作の出力には、線形性を破るためにReLU活性化関数を適用する6つのニューロンが必要であり、入力ニューロンの数は11です。.add()メソッドを使用してこれらすべてのハイパーパラメーターを追加します。
同じ構成で隠しレイヤーを追加します。この隠しレイヤーの出力には6つのノードがあります。
出力層
このレイヤーの出力には、ユーザーがサブスクリプションを継続するか終了するかを示すノードが1つだけ含まれます。 この層では、活性化関数としてシグモイドを使用します。
について学ぶ:ディープラーニングとニューラルネットワーク
コンパイル
次に、ネットワークをオプティマイザーに接続する必要があります。 オプティマイザは、エラーに基づいてネットワークの重みを更新します。 このプロセスは、バックプロパゲーションとして知られています。
ここでは、オプティマイザーとしてadamを使用します。 結果はバイナリに関するものであるため、バイナリクロスエントロピーを使用し、使用するメトリックは精度です。
モデルのトレーニング
この段階は、基礎となるパターン、データ間の関係を学習し、その知識に基づいて新しい結果を予測するためにモデルをトレーニングする必要がある重要なパスです。
model.fit()メソッドを使用してモデルをトレーニングします。 メソッド内に3つの引数を渡します。
input → x_trainは、ネットワークに供給される入力です
出力→これには、x_train、つまりy_trainの正解が含まれています

no.of.epochs →データセットを使用してネットワークをトレーニングする回数を意味します。
評価
2つの引数を渡す必要があるsklearnライブラリからaccuracy_scoreをインポートすることで、モデルのパフォーマンスを評価できます。 1つは実際の出力で、もう1つは予測された出力です。
また読む:実世界のニューラルネットワークアプリケーション
結論
それは今のところすべてです。 初めてのニューラルネットワークの構築を楽しんでいただけたでしょうか。 ハッピーラーニング!
機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのエグゼクティブPGプログラムをご覧ください。このプログラムは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIITを提供しています。 -B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との雇用支援。