AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜
こんにちは。MatrixFlow広報部の中野です!
今回はMatrixFlowで分析に使ったAIの精度を考えてみたいと思います。
前回の記事『ワインの品質分析 〜成分から品質スコアを予測〜』で、ワインの成分による品質分析を実施しました。レシピ(AI)は、回帰を使っています。
成分重要度を分析した結果、
赤ワインのテストデータ精度(R2) 0.398
白ワインのテストデータ精度(R2) 0.571
という数値が出ていました。
「R2(決定係数)」とは、回帰によって導いたモデルによって予測した値が実際の値と比べてどのくらい当たっているかを表現する評価指標です。
R2は普通0~1の範囲の値をとり、値が大きいほどモデルが適切にデータを表現できていることを意味します。
ということで、、、
この「0.398」「0.571」という値は少し低めなので、もう少し精度を上げるためにはどうすればいいのかを見つけていきたいと思います。
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_08c3231efdc5dc1323b0a9f2a50dce7c-1024x509.png)
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_442f66a189b5a2835e99105fb0575aa3-1024x510.png)
一般に精度を向上させるには、
・AIの予測方法(アルゴリズムやパラメータ)を変更する方法
・データを変更する方法
の2通りのアプローチがあります!
早速始めていきましょう!!!
アルゴリズムを指定してみる
学習結果の画面で学習情報を見てみます。
グラフの左側に最高精度時のパラメータの項目にアルゴリズム「LightGBM回帰」と出ていますね。(白ワインも同じでした)
今回、レシピで「AutoFlow」を使用したため、自動で最も精度の良いアルゴリズムの選定とパラメータのチューニングを行いました。
その中で、「LightGBM回帰」の精度が1番高いことがわかりました。アルゴリズムを1つに絞って学習することで精度に影響与えることもあるようなのでやってみましょう。
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_8be05154865b4ecaa783a33317aa6592-1024x509.png)
レシピの設定変更
レシピの画面でレシピを編集しましょう。左上の「レシピを編集する」を押します。次にブロックの「AutoFlow」をクリックすると、右側に「パラメーター」の設定ができるようになります。ここで、『LightGBM回帰』だけにチェックを入れて、残りは外して、変更を保存します。
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_cc37cb5226f6371ef927cc1ad0793024-1024x495.png)
AIの学習をする
編集した新しいレシピを使って、再び学習してみましょう。
(学習手順は『ワインの品質分析 〜成分から品質スコアを予測〜』と同じです)
結果は・・・
赤ワインは、「0.401」少し上がりましたね!
一方、白ワインは、「0.57」・・・変化ありませんでした。
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_a50280ec4c768acf7ca8e8e8293dd771-1024x495.png)
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_c01b7dee504e8e1eccd608d6079e2116-1024x495.png)
この方法で大幅に上がる場合もあるのですが、今回はあまり上がりませんでしたね。
では、他の方法も試してみましょう。
データを加工してみる
データは減らしても精度が向上することはないので、白ワインと赤ワインのデータの項目が同じであることから、繋げてデータ量を増やして見ることにしました。
赤ワインと白ワインを区別するために、type列(white:0, red:1)を追加しました。
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_29eb2ebb774f6d22f009df62df3ac2f3-1024x514.png)
AIの学習をする
では早速、このデータを学習してみましょう!
ファイルをアップロードしたら、上記で作った『LightGBM回帰』を設定したレシピを使って学習します。
結果は・・・「0.58」
赤ワインは「0.401」、白ワインは「0.57」だったので上がりましたね!
![AIの精度を向上させるには? 〜ワインの品質分析AIで考える〜](http://www.matrixflow.net/wp-content/uploads/2021/10/picture_pc_9e028e40873999cadd9b977a72d01f5c-1024x494.png)
まとめ
このように、AIのアルゴリズムを変更してみたり、データを少し加工することで精度が変わってきます。
他にも、試行回数を増やしてみるという方法もあります。(今回は試行回数100で設定)
もし、「精度が低いかなー」と思ったときは3つの方法を試してみてください。