みなさま、こんばんわ🌜

今日の大阪は台風7号が直撃していて、外は暴風雨になっています🌀😅💦

 
1 Python 3年生 機械学習 4日目

本日は『Python 3年生 機械学習のしくみ』という本の4日目の学習日でした。

 

本日は「4章 機械学習のいろいろなアルゴリズム」から学習をスタートさせました。

 

機械学習には様々な「アルゴリズム」があります。

 

「アルゴリズム」とは、予測や分類を賢くしている便利なものです。

2 回帰:線形回帰

機械学習のアルゴリズムには

  • 回帰:どんな数値になるのかを予測したいときに使う
  • 分類:これは何なのかを予測したいとき使う

などの種類があります。

 

線形回帰とは、予測したい状況(説明変数X)を数値で入力すると、予測結果(目的変数y)を数値で出力するアルゴリズムです。

 

直線でつないだものを 線形回帰(linear regression)、直線でない線でつないだものを 非線形回帰(non-linear regression)と言います。

 

線形回帰では主に 最小二乗法 という方法が使われます。

最小二乗法とは

引いた線と実データとの誤差が1番少なくなるような線を求めます。

引いた線と実データの誤差をそのまま計算してしまうと、正しく求めることができません。

そこで差を二乗してその合計を求めます。

値を最小になるようにすることで、誤差の少ない線を求めることから「最小二乗法」と言います。

参考 森巧尚(2021)『Python3年生 機械学習のしくみ 体験してわかる! 会話でまなべる! 』翔泳社
 

データを作り、線形回帰のモデルに、訓練データを使って学習させました。

 

正解率をテストし(正解率 84.983%)散布図上に予測の線を引いて、確認してみました。

 

よさそうな線が引けましたね😊️

3 分類:ロジスティック回帰

ロジスティック回帰とは、「YESかNOか、といった2種類(場合によっては3種類以上)の分類を回帰で予測する」アルゴリズムです。

 

用意したデータをシグモイド関数でグラフ化してみました。

 

グラフの形がいかにも、ロジスティックス回帰みたいですね😃

4 SVM(サポートベクターマシン)

次に、SVM(サポートベクターマシン)のアルゴリズムを使って、学習を進めました。

 

SVM(サポートベクターマシン)は、なるべく公平な境界線を引いて、分類を予測するアルゴリズムです。

 

境界線の複雑さ(gamma)を変えて、分類の状態を描画してみました。

 

「kernel="rbf"」というコードの意味がわからなかったので、ChatGPT に聞いてみました。

 

ChatGPT の説明を読んで、何となくふんわりとわかったような気がしました😅

 

プログラミングは1日にしてならず、ですよね😅

5 分類:決定木

次のアルゴリズムは「決定木」です。

 

「決定木」とは、2択の質問で分岐を行いそれを繰り返して、どのように分類していくのかが、人間にわかりやすいアルゴリズムです。

 

plot_tree命令を使って、ツリー構造を描画してみました。

 

基本情報技術者試験に出てくる「二分選択木」っぽいですね。

6 基本情報技術者試験の成果

基本情報技術者試験の時にアルゴリズムを勉強したことが、今とても役に立っています😊️

 

プログラミングの勉強をはじめても、7~8割の人は途中で詰まって挫折してしまいます。

 

挫折率の高さを知った私は、少しでも挫折の確率を下げるために、先に「基本情報技術者」の試験勉強をしました。

 

基本情報技術者試験は、コンピュータの構造や動き方、アルゴリズムの知識を問う基礎的な試験です。

 

先に基本情報技術者試験の勉強をしたことで、今、プログラミングで詰まらずに学習を進められていると思います。

 

今日はここまで❗

 

最後までお読みいただき、ありがとうございました😄

また来てね~😄👋