Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPTを用いた活用事例Ⅲ

 ChatGPTを用いた活用事例Ⅲ

More Decks by Takahiro Arai(新井崇弘)

Other Decks in Technology

Transcript

  1. プロンプト構造 X1 お新香 X2 トン汁 X3 キャベツ X4 レモン X4

    ソース X5 ロースかつ X6 白米 要素分解 各栄養素の推定 画像DB コードブック X1 栄養素 X2 栄養素 X3 栄養素 X4 栄養素 X5 栄養素 X6 栄養素 (日本食品標準成分表 (八訂)増補2023年) ロースかつ定食 X ロースかつ定食 料理名・食品名の推定 料理名・食品名 の栄養素 https://www.mext.go.jp/a_menu/syokuhinseibun/mext_00001.html データセットの構築 あくまで一例です。工夫しながら構造変更しましょう。 一般的料理名に対する平均的な 栄養素であれば食品名からダイレ クトにデータセット構築可能
  2. プロンプトエンジニアリング(リバースエンジニアリング) あなたは、栄養学の専門家です。いまから、与えられる10個の料理の画像を認識してください。 料理画像から食品名を分解してください。[栄養情報データベース]を用いて、D列の食品名に対応する[項目]と成分量を推定します。分解した各食品名の栄養素を、合計し、料理画像の総合栄養成分を算出した データテーブルを作成します。したがって、1つの写真につき1レコードのデータを作成し、10個のレコードが作成されます。なお、[栄養情報データベース]は100g当たりの栄養です。推計は次のステップで行います。 1.写真から一般的な料理名を推測 2.写真から各食品名を推測する 3.[栄養情報データベース]から類似する食品名を見つけて栄養成分を計算 4.各料理の栄養成分の合計値を算出しし、料理名の栄養成分とする 最終的には、料理のクラスタリングを行うことが目的なので、それに適したCSVデータテーブルを作成してください。 #

    [栄養情報データベース]:""" 栄養情報データベース.xlsx “”” # [項目]:""" ・NO.の列を作成(読み込んだ[写真]に番号を付与) ・料理名(一般的な料理名) ・カロリー( kcal ) ・タンパク質(g) ・脂質(g) ・食物繊維総量(g) ・炭水化物(g) ・ナトリウム(mg) ・カリウム(mg) ・カルシウム(mg) ・マグネシウム(mg) ・リン鉄(mg) ・亜鉛(mg) ・銅(mg) ・マンガン(mg) ・ビタミンA(µg) ・ビタミンD (µg) ・ビタミンE(mg) ・ビタミンK(µg) ・ビタミンB1(mg) ・ビタミンB2(mg) ・ナイアシン(mg) ・ナイアシン当量(mg) ・ビタミンB6 (mg) ・ビタミンB12(µg) ・葉酸(µg) ・パントテン酸(mg) ・ビオチン(µg) ・ビタミンC(mg) ・食塩相当量(g) “”” 英語で考えて日本語で回答してください。 Take a deep breath and work on this problem step-by-step. 途中結果やプロセスは不要です、結果のCSVのみ吐き出してください。CSVのファイルエンコーディングはCP932としてください。データテーブルは、クラスタリングを適用できる形にしてください。 プロンプトデザイン にこだわらない
  3. 生成AIを通じたデータ分析の流れ 生成AIに聞く 主成分分析の推奨 分析イメージ データセットの 練り直し 多変量をいくつか代表的な指 標にまとめたうえで、料理名を プロットして傾向を把握したい 1人での食事と複数人で

    の食事で栄養バランスの 相違を見たい 曜日によって外食行動に 変化がみられるか 低栄養な料理のパターン を特定したい 料理名から栄養価を予測 したい どんな分析を行いたいか 分析結果のイメージ 分析事例の検索 初めから生成AIに聞くとあまり 上手くいかない場合が多いです
  4. 分析結果のさらなる工夫 # 必要なパッケージをロードする library(factoextra) library(FactoMineR) # データの読み込み dat <- read.csv("B:/Downloads/dish.csv",

    fileEncoding = "CP932") # データを標準化する # ここでyour_dataは、分析したいデータフレーム dat[,c(4:31)] <- scale(dat[,c(4:31)]) # PCAを実行する pca_result <- PCA(dat[,c(4:31)], graph = FALSE) # PCAの結果を視覚化する # 負荷量プロット fviz_pca_var(pca_result, col.var = "contrib", # 負荷量に基づいて色分け gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE) # テキストが重ならないようにする # または、個体のプロット fviz_pca_ind(pca_result, col.ind = dat$メンバー, # グループ変数に基づいて色分け palette = c("#00AFBB", "#E7B800", "#FC4E07"), addEllipses = TRUE, # グループごとに楕円を追加 legend.title = "Group") ざっくりと指示してもそれなりの結果を返してくれる 80点くらいの回答なのであとは自力で 100点まで持っていく この辺はタイパが良い方でFA