ノーコードでAIワインソムリエをつくってみた

こんにちは、エンジニアの落合です。

この記事は ギークフィード Advent Calendar 2025、24日目の記事です。

 

明日はクリスマスですね。クリスマスといえば美味しいケーキとお肉、そしてワインです。

でも、ワインってなかなか選ぶのが難しいですよね。

知識がなくて選べないなら、機械学習に選んでもらえばいい。

ということで、今回はSageMakerを使って、成分データからワインの品質を予測する「AIソムリエ」を30分で作ってみました。

 

はじめに

先日、SageMakerの機能や料金の注意点を調査したので、今回はいよいよSageMakerを使っていきます!

SageMakerの機能と料金体系を整理してみた

 

とはいえ、機械学習についての知識はあまりないので、今回はノーコードで機械学習を試せるSageMaker Canvasを使ってみようと思います。

 

使用したデータ

Kaggleという機械学習のためのプラットフォームから、ポルトガル産の赤ワインのデータセットをダウンロードして利用しました。

https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009?resource=download

 

このデータセットは、以下の文献から引用されたもののようです。

P. Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis. Modeling wine preference by data mining from physicochemical properties. In Decision Support Systems, Elsevier, 47(4):547-553, 2009.

 

ワインの成分やpHなどから品質を出しているデータになっています。

 

SageMaker Canvas

環境準備

Amazon SageMaker AIのコンソールを開きます。

Amazon SageMakerと間違えそうになりますが、緑のアイコンの方です。

 

左メニューからCanvasを選択し、「SageMaker ドメインを作成」をクリックします。

 

シングルユーザー向けの設定(クイックセットアップ)を選択して「設定」をクリックします。

 

セットアップが完了するまで数分かかります。

完了後、再度左メニューのCanvasから、「Canvasを開く」をクリックします。

これで環境のセットアップが完了です!

 

データのセット

今回利用するデータをCanvasにインポートします。

左メニューのDatasetsを開き、「Import data」をクリックします。

利用するデータの形式はCSVなので、Tabularをクリックします。

 

Dataset nameを入力して「Create」をクリックします。

次のページでデータセットファイルをドラッグ&ドロップします。

 

読み込ませたデータが表形式で表示されました!

右上のCreate datasetをクリックして完了です。

 

モデル構築

次に、読み込ませたデータセットからモデルを作成します。

左メニューのMy Modelsを開きます。

Create new modelをクリックします。

 

Model nameを入力して、モデルの形式を選択して「Create」をクリックします。

次のページで、使用するデータセットを選択して「Select dataset」をクリックします。

targer columnを「quality」にすると、Value distributionに値の分布が表示されます。

データ自体に結構偏りがありますね。

試しに他の値も見てみます。

 

↑pH

 

↑アルコール(度数)

 

赤ワインって結構強めの酸性なんですね。このデータセットだとアルコール度数が低めなワインが多いですね。

ここを見てるだけでも結構面白いです。

 

さて、一通り分布を確認したところで「Quick Build」をクリックします。モデル構築が開始されて、10分程度で完了しました。

 

解析

モデル構築が終わりました!

Accuracyがモデルの精度です。品質(味覚スコア)を成分データだけで7割も当てられるのは驚きです。

結果に影響している成分も表示されているので見てみます。

上からアルコール(度数)、酸化防止剤(亜硫酸塩)、硫酸塩、揮発性酸(ワインを飲んで酸っぱいと感じる酸)、pHになっています。

パーセンテージは回答に影響があった割合です。

 

AIが品質を判断するのに、50%以上の判断が上位3つの成分で決まっているということになります。この3つのバランスが肝だったのでしょうか。

酸化防止剤の量はワイン好きの中でも議論が分かれるところみたいですし、日本酒などもアルコールの度数によって重厚感が変わったりしますからなんとなく納得がいきます。

 

Scoringも見てみましょう。

左の図は読み方がわからなかったのでAIに聞いたところ、「サンキーダイアグラム」という図のようです。

PredictedがAIの予想、Actualが実際の正解の数になっていて、どこで予測がズレたかが視覚的にわかるようになっているみたいです。

 

8点と予想したものは100%の正答率を叩き出していますね。5~7点は斜めの線が多く、AIが区別に苦労したことが見て取れます。

右の表からもわかるように、5、6点は比較的正答率が高いですね。左の図のActualにあるように、この2つはデータが多かったため、より学習が進んだのでしょうか。

 

Batch Prediction(バッチ予測)をManualで実行して、学習済みのモデルを利用してデータセット内のワインの格付けをやってみました。

左から2つ目のProbabilityはAIが予測した確率です。

4点のProbabilityが軒並み0%なのは4点のデータが少ないからでしょうか?

他の点数も、最初に予想していたよりもProbabilityの値が低くて驚きました。このくらいの値しか出ていなくても、全体を通してみると70%の正答率になるのかと思って。

ただ、やはり6、7点のワイン好きのProbabilityの値は比較的高めになっていますね。

 

お片付け

SageMaker Canvasはログインしている限り課金が続いてしまうので、必ず使用後はLogoutしましょう!!

Logoutせずにタブだけ閉じても課金が続いてしまうみたいです。使用の際は気をつけましょう。

 

おわりに

機械学習初心者が機械学習の入門として試してみるには、SageMaker Canvasは非常に扱いやすいツールだと感じました。特に、機械学習の知識さえあれば、非エンジニアでもノーコードで試せる点が素晴らしいと思いました。

今回は約1,600件のデータを利用しましたが、スコアが4や8のサンプルが少なかったことが精度に影響してしまったため、スコアを安定させたい場合にはもっとデータ量があった方が良さそうですね。

実際にこのデータセットとモデルを使用してAIソムリエとして好みに合うワインを選んでもらうにはデータに必要な成分が多いですが、アルコール度数や酸化防止剤、pHなど、調べられる範囲での成分に絞って、自分の好きなワインとこのデータセットを組み合わせれば理想のワインを選んでもらうこともできそうですね。

それでは、みなさんも良いクリスマスをお過ごしください。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ