人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。新データに対する予測という手順が一般的。今回はもう少し実践的なデータを使ってこの流れをつかみたい。医療系のデータでPimaインディアンが糖尿病にかかったかどうかを表すデータのようだ。1)データの説明によると最初の8列が患者の属性情報で9列目が糖尿病を発症しない(0)または糖尿病を発症した(1)というラベルとなっている。患者の属性情報から糖尿病を発症するかを予測するモデルを学習するのがここでの目的。このデータはCSV形式でダウンロードできる。8]ここで、二次元データならグラフで可視化してみるところだけれど、8次元データはそのままでは可視化できない。分析するなら属性間の相関図や次元圧縮してみるのがセオリーか?今回はKerasの使い方の習得がメインなので飛ばそう。モデルの定義ここはニューラルネットの構造を組み立てるところ。activation='sigmoid'))initで層の重みの初期化方法を指定できるuniformだと0~0.05の一様乱数。normalだと正規乱数。出力層にsigmoidを使うと0.0から1.0の値が出力されるため入力データのクラスが1である確率とみなせる。指定してモデルをコンパイルする。2クラス分類なのでbinary_crossentropyを使う。ここら辺は前回と同じ。batch_size=10)訓練データXとラベルYを指定して学習エポックは固定で150回ループを回す学習はいわゆるミニバッチ学習でバッチサイズは10とした。データを10個ずつ取り出して誤差を蓄積し、その誤差で1回重みを更新する。100))モデルの評価にはmodel.evaluate()を使う。戻り値は評価指標のリスト。デフォルトでは損失(loss)のみ。compile()のmetricsに評価指標を追加すると、別の評価指標が追加される。今回は、精度(acc)を追加してある。model.metrics_namesで、評価尺度の名前リストが得られる。0.7890625]ここでは、訓練データを使って評価しているが、実際は訓練データとは独立したテストデータを用意するべき。モデルにバグがないか確認するために最初は訓練データで評価してみるのもありだと思う。訓練データでさえ精度がものすごく低かったらそもそも学習できないかプログラムにバグがある。今回は、訓練データの予測で精度79%なのでそこそこうまくいっている?次回は訓練データとテストデータを分ける例を取り上げたい。出力層はsigmoidなので下のように0.0から1.0の値が出力される出力をクラスラベルにするためにround()を使う。...今回は実践的なデータセットを用いてKerasによる実験の流れを一通りまとめた。»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。