前回はあまりにさっぱりだったので別の方法を試してみる。
Deep Learningを試してみる
scikit-learnでDeep Learningもできそうということで入れてみることにする
https://qiita.com/ToshikiShimizu/items/3c0b8713a26ee10b689e
https://algorithm.joho.info/machine-learning/python-scikit-learn-neural-network-iris/
ついでに画像についても正規化してから差分をとるようにしてみる。
MLPについてはとりあえずデフォルトのまま試す。
正規化
np_feature = np_feature.astype(np.float64)
np_feature =np_feature / np_feature.max()
※これで合っているのかどうかわからんので適当な実装。
MLP
# デフォルトで実施してみる
model_MLP = MLPClassifier()
model_MLP.fit(predictor_var, response_var)
※ハイパーパラメータを設定したいのだがいっぱいあってもわからんすぎる。
https://spjai.com/neural-network-parameter/
実施結果
とりあえずやってみたら、ALL 0ではない結果に。
ということで、これも投稿してみる。
![2018-10-27_19h26_25.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F106639%2F2af33c14-56e8-8f9e-5852-1f5abcde6246.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=6eaa87800feba8efa94df3345a77260a)
0じゃなかった!
しかし0じゃないだけでほぼビリみたいなものだ。
OpenCVを使って水増しさせてみる。
インストール
回転/反転
feature = data.imread(file)
feature = cv2.flip(feature, flip_no)
回転についてはコードを書くのがめんどくさかったのでRalphaで加工
https://forest.watch.impress.co.jp/library/software/ralpha/download_11000.html
で、この水増し。全体を増やすのではなく、Positiveのデータに対してだけ実施。
というのもふとPosiとNegaの件数の差が大きすぎるせいなのでは?という思い立ったから。
実施結果
![2018-10-29_20h47_36.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F106639%2Fc5a85de2-0b19-53e0-d81f-a7cf69c61763.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=decff749bc9385f44ab043d5411dde5d)
だいぶ増えた。
水増し案は割とありなのかもしれない。
もう少し何かしらで増やして、PosiとNegaの比を半々に近づけたい。
※回転、反転でようやく24480枚。negativeと比較してやっとこ1割といったところ。
ひょっとすると、LANDSATのデータを白黒にすればTrainとして使えたりするのかな?