Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

Paiza で期間限定で Python×AI 機械学習入門が無料だったのでしてみた チャプター2 ①

最近 侍エンジニア塾に相談した後やる気をなくした+体調不良も相まって勉強のやる気が若干低下していましたが Googleの履歴からRecommendしてくれる機能でPaizaの機械学習入門が無料になっているということでしてみました

 

【CV:上坂すみれ】paizaラーニングに中上級者向け『Python×AI・機械学習入門 声優識別AIを創る』編を追加&期間限定無料公開!|paizaのプレスリリース

 

独特な絵で好印象のヤスダスズヒトさんの絵と声優の 上坂すみれ さんの声でアニメを見ている感覚で受講できるので以前も無料版のみ受講していました

今回 無料の範囲が拡大しているので今のうちにしておこうと思います

(2020 9/27までのようです)

 

Paizaはテストや問題の解答をブログ等に掲載することが禁止されているので Paizaラーニングの内容等を掲載するのはokそうなのでokな範囲内で掲載していきます

 

f:id:chocolate22554:20200903093952p:plain

f:id:chocolate22554:20200903094153p:plain

P

Paiza利用規約 https://paiza.jp/guide/kiyaku

 

まず基礎の内容として動画のみの解説がありました

f:id:chocolate22554:20200903094307p:plain

今回のPaiza学習内で使うツール

f:id:chocolate22554:20200903094354p:plain

パターン認識モデル

1回目終了

 

次2回目

AI学習やIT学習はお堅い形式が多く文章と公式的な図の羅列が多いのですがPaizaはイラストを使い声優さんの声で覚えやすくとっつきやすくなっており学習しやすい

f:id:chocolate22554:20200903094706p:plain

Paiza イラスト等を使い解説 https://paiza.jp/works/ai_ml/primer/ml-challenge2/36002

2種類の教師データがあり その境に境界線を引く

境界線を決定する要の教師データを サポートベクトル と呼ぶ(SVMとはまた違うよう?)

サポートベクトルから境界(線)までの距離(マージン)をある基準に従って最大化する

要はSVMから学習させればテストデータからちょうどよい境界を予測できる

 

#import処理(簡略化)

▶import  numpy as np

     matplotlib

             random

 from sklearn import svm

#15個の座標を作る

▶N=15

#15個の座標を設定するときに同じ乱数が生成されるようにSeedの設定をする

▶random.seed(11813)

❓そもそもrandom seedとは?

f:id:chocolate22554:20200903100126p:plain

https://qiita.com/HotAllure/items/ca5462b33d8b0a14631f

f:id:chocolate22554:20200903100243p:plain

https://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B0

f:id:chocolate22554:20200903100547p:plain

懐かしいモンテカルロ法 https://techracho.bpsinc.jp/yoshi/2019_12_20/85193

#結局分からず random関数で生成するのが疑似乱数(確定的な計算によってランダムに見せている数値)であり疑似乱数を算出するために設定した初期値の数値がSeedということで今は理解しています

<もっと理解したら補足しようと思います。AIAcademy無料版をさらっと全てしただけ+Paizaは現場目線で作られているのでAI等の世界は広いんだ もっと学習しないと という気持ちにさせてくれます>

 

#0~100の値の2つのペアをランダムで作製

▶train_X=np.array([[random.randint(0,100),random.randint(0,100)]for i in range(N)])

<プログラミングの際に英語が分かっていると分かりやすいなと思います(中級レベル TOEIC600ぐらいあれば大丈夫と思われる 300でもないよりは全然助かると思います) 後はプログラミング言語に慣れるだけなのでひたすら書いて慣れてきたころにあれこの用語100%分からないなとかあれば調べるのがいい方法だなと私は思います>

www.atmarkit.co.jp

np=numpy

array=配列する

random.randint(0,100)=0~100の数値間でランダムに選ぶということ この文が2つあるのは1つ目と2つ目という意味 目的がペアで出すので1つ目と2つ目同じ条件で数値を出す

ForはPythonの繰り返し処理 iの意味は未だに分かりません<理解し次第補足しようと思います>

for i in range(N)=N回繰り返す

f:id:chocolate22554:20200903103224p:plain

https://programming-study.com/technology/python-range/

 

#train_Xで実行

▶train_X

#15個の座標が出来ているのが確認できる

f:id:chocolate22554:20200906101105p:plain

paiza


 

#描画する

▶for i in range(len(train_X)):

(forの後の文章には半角スペース4つでインシデントを必ず入れる)

    plt.plot(train_X[i][0],train_X[i][1],'o',color='blue')

    plt.annotate(i,(train_X[i][0],train_X[i][1]),size=20)

f:id:chocolate22554:20200903104337p:plain

https://python.atelierkobato.com/annotate/

#点の色をblueにし更に背番号をつけた

f:id:chocolate22554:20200906101654p:plain

blue

#目で見て分かりやすいように分類する  同じグループになりそうな  赤丸部を1 それ以外を0に分類  分類結果をyに代入する

f:id:chocolate22554:20200906101737p:plain

paiza

 

 

 

<ここから先は追いつけなくなってきたので②に続きます。とても濃い内容になっています。動画を3回以上再生しなおしている部分もあります。AI Academyをもっと入念にしておけばよかったかなと思いましたがしていたからこそ簡単な部分やプログラミングはある程度読めるのでよかったかなと思います。

何も知らない初心者の方にはとても難しい内容かなと思います。しかしやる気があるなら大丈夫だと思います。>

<後から気づきましたが中上級者向けと記載がありました(;'∀')>

www.google.com