python機械学習のコード解析

>目的

AIを作るということに興味があります。Pythonという言語を使って記述するらしいということがわかっていますので、Python機械学習の理解のためにコードの解析をします。

 

>>出典

[Python]10数行のコードで機械学習を実装(手書き文字の認識) - Qiita

 

>>コード

 

f:id:zizamo2193:20200105153605p:plain

>>①from sktlearn import datasets,svm

Pythonではimport文を使って標準ライブラリやpipでインストールしたパッケージ、自作のパッケージなどをインポートできる。

Pythonでは関数やクラスなどをまとめて書いたファイルをモジュールという。

モジュールとかライブラリとかパッケージとかは全部同じ意味です。要するに他ファイルに書かれた関数をこのファイルのこのコードで呼び出せるようにする記述です。

 

>>②digits = datasets.load_digits()

機械学習といえばscikit-learn(サイキットラーン)ですが、scikit-learnの中にはすぐに機械学習やデータ分析を試せるように、ロードして使えるデータセットがいくつかあります。

とのことで、またサーキットラーン公式に、

Load and return the digits dataset (classification).

とあって、クラシフィケーションの意味が分かりませんが、まあload_xxxは実験用データセットxxxを読み込む関数で、戻り値のデータセットを変数digitsに格納しているんだ、と推測できます。変数の型は定義しなくてもいいみたいです。

 

>>③digits['data'][0].reshape(8,8)

これはコメントの記載から、リスト型のdigitから、行[data]、列[0]のところにあるデータをreshape()で行列に整形していると推測できます。図にするとこうです。

f:id:zizamo2193:20200105153600p:plain

データを行列に整形する、というのがイメージできませんが、次に進みましょう。

 

>>④digits.target[0]

targetには正解ラベルがはいっているらしいです。

datasetsの中身を詳細に見ようとして手間取ったので、サイトにあった下記の説明で納得することにします。構造はわかりませんがそういう事らしいです。

データセットは8x8の画像が1797枚。それぞれに0〜9のラベルがついている。

 

>>⑤svm.SVC()、clf.fit(digits.data,digits.target)

コメントにはサポートベクターマシンとあります。これは例えば、xy平面上に各データA群、B群をプロットしていき、ABを切り分ける線を引く方法論のようです。このコードの場合はそれがxy平面の二次元ではなく、64次元になったということだと思います(意味不明)。Fitは学習だそうで、fitにデータと正解ラベルを引数として渡すと、このclfはそのデータの内容を学習した状態になるということだと思います。1800枚の画像なので、0~9までの数字の手書きの文字をそれぞれ180回ずつ見て、特徴を覚えた感じだと思います。dataと正解ラベルの対応とかはどうなっているんでしょうか。勝手にやってくれているんでしょうか。

>>⑥test_data = ...、clf.predict(test_data)

この[[]]というのは、行列のデータを作るときの記号で、2x2の行列なら[[0,0],[0,0]]のようになります。このコードの書き方だと1x64の行列になると思いますが、ちゃんと8*8に内部的に再解釈している?predictは予測で、先ほど学習したclfにテストデータを渡して、predictすると、どの正解ラベルに入るかを教えてくれています。

>>参考文献

https://note.nkmk.me/python-import-usage/

 

https://yolo.love/scikit-learn/datasets/

 

https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_digits.html

 

https://dev.classmethod.jp/machine-learning/introduction-scikit-learn/

 

http://akiniwa.hatenablog.jp/entry/2013/12/20/120734

 

http://www.sist.ac.jp/~kanakubo/research/neuro/supportvectormachine.html

 

簿記2級、現在地と目標

■目標

簿記2級を取ろうと思っています。

  - 現在地

先日簿記3級を取りました。簿記3級レベルの簿記研修を受ける機会があり、折角なのでと思いテスト勉強しました。実はこの簿記研修を受ける前に独学で簿記2級から勉強を始めて挫折した経験があったのですが、簿記3級の勉強を教師ありでできたことで、仕分けや帳簿のルールとか、試験の感じとか簿記本体の勉強以前のところの知識が埋まった感があったので、これは簿記2級は独学で行けると思い、一度挫折した独学の簿記2級に再挑戦します。

    ・3級の教本

使った本はこれです。

 

教科書

問題集

教科書の方は非常にわかりやすいいい本だと思います。特にその章で出てきた新しい勘定科目が何に分類されるのかというところが明示されているのがポイント高いと思います。仕訳をやる際のとっかかりの情報が明示されているおかげでその後の理解と例題への挑戦がスムーズです。

 

逆に問題集の方は残念な出来で、同じ著者の本だったので期待して買ったのですが、過去問の掲載と解説についてはどの本も大差ないでしょうから置くとして、予想問題の難易度が不必要に高く、分量も不必要に多いです。途中までは取り組みましたが意味を認められなくなりやめてしまいました。過去問の方は掲載されているものはすべて解いて復習も行ったのでそれで十分だと思い、結果的にその判断が奏功したと言えると思います。

 

教科書の方はおススメ

問題集の方はおススメじゃない

 

    ・2級の教本

使った本はこれです。

 

教科書_商業簿記

教科書_工業簿記

問題集

検討中

 

聞くところによると簿記2級は商業簿記の部と工業簿記の部からなるそうで、工業簿記というのがどんなものかは知りませんが、教科書は3級の勉強のときによかったシリーズのものでやっていきます。商業簿記の方は購入しました。工業簿記の方はまだ買ってません。問題集は別の著者のものを使う予定です。

 

  - 計画

別に締め切りがあるものではないので、現時点ではいついつの試験を受けるということは決めません。3級のときもそうでしたが教科書をすべて終わらせて、過去問に着手した時点で、受験可能な直近の試験に申し込みます。3級のときはこのスケジュールでちょうどよかったです。

 

教科書が終わって過去問に着手した時点で受験可能な試験日に受験すべく申し込む

 

    ・見通し

商業簿記の教科書は20章あり、一日で1章進むことができます(実際やってみるとそうでした)。工業簿記の方もおなじくらいのボリュームだと思われます。これは書店で手に取って見た時に大きさが大体一緒だったことを根拠に言っています。仕事があるので一週間に1日簿記の勉強の日を作るとすれば40週、大体10か月かかり、簿記の日を2日作れば5か月かかる計算になります。なので2020年5月から、2020年10月の間に教科書を完了させることを目安にやって行こうと思います。