番外編2 ニューラルネットワークの応用(Courcera 機械学習より)

さて、今回は番外編ということで”Courcera Machine Learning Week 4”より、非常に難解だったニューラルネットワークを少し応用して遊んでみたいと思います。

今回やりたいことは、前回に続いて2つ目です!

  1. 与えられたデータをトレーニング/テストセットに分けてモデルの精度確認
  2. 予測の結果、学習させたモデルによって間違えて予測した数字の表示
  3. ペイントで書いた数字を入力して予測!

※前提として、Courcera Machine Learning Week 4の課題が終わっていることとします。もし終わっていない方はこっそり参考にしてください。

2.間違えてしまった画像データの確認


ニューラルネットワークでも予測が困難なへたくそな字を確認するコードを作っていきたいと思います。

まずはpred関数に学習済みシータ1,2とまだ見ぬデータX_testを入れて予測してみましょう。pred_testに予測結果が入ります。

pred_test = predict(Theta1, Theta2, X_test);

続いて間違えて予測した画像データが何番目のなのかカウントしていきます。

ここでは、for文を用いて一つずつpred及びyを照らし合わせていきます。pred(i)においてy(i)の値と差があった行番号を行列mis_numに格納していきます。

t=size(pred,1);
mis=zeros(t,1);
mis_num=0;

for i=1:t
  if (pred(i)~=y(i))
    mis(i)=1;
    mis_num=[mis_num i];
  endif
end

そして得られたmis_num行列をdisplayData関数に入れてみましょう。

displayData(X_test(mis_num,:));

するとこんな感じに表示されます。

左:間違えて予測した画像データ 右:元のデータからランダムに抽出した画像

確かに、人間の目で見てもこれは何て書いてあるかわからない!というのが多い気がしますが、明らかに分類できよこれ!ってのもありますね。

こうして考えると人間の目は相当優秀な分類器なんですね。

さて、次回は実際に自分で書いた数字を分類させたいと思います!

前へ

次へ

とあるIT企業データサイエンティストの競馬予測チャレンジ データ収集編1

最近、馬娘で人気沸騰中の競馬ですが、友人の勧めで競馬予測を始めました。   競馬予測チャレンジ目次! データ取得編1(過去のレースデータ取得) ⇦本記事はココ データ取得編2(スピード指数取得) 特徴量エンジニ […]

コメントなし

番外編3 ニューラルネットワークの応用(Courcera 機械学習より)

さて、今回は番外編ということで”Courcera Machine Learning Week 4”より、非常に難解だったニューラルネットワークを少し応用して遊んでみたいと思います。

コメントなし

番外編2 ニューラルネットワークの応用(Courcera 機械学習より)

さて、今回は番外編ということで”Courcera Machine Learning Week 4”より、非常に難解だったニューラルネットワークを少し応用して遊んでみたいと思います。 今回やりたいことは、前回に続いて2つ目 […]

コメントなし

番外編1 ニューラルネットワークの応用(Courcera 機械学習より)

さて、今回は番外編ということで”Courcera Machine Learning Week 4”より、非常に難解だったニューラルネットワークを少し応用して遊んでみたいと思います。

コメントなし

コメント

タイトルとURLをコピーしました