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

ChatGPTを用いた活用事例Ⅰ及びⅡ

 ChatGPTを用いた活用事例Ⅰ及びⅡ

テスト

Takahiro Arai(新井崇弘)

November 02, 2023
Tweet

Transcript

  1. ChatGPTについて 【ウェブやソーシャルメディア】 ✓ X (旧Twitter)で”ChatGPT” で調べる ✓ Youtubeで”ChatGPT” で調べる ✓

    Hatakeyama, D. (2023). ChatGPT Impact - その社会的/ビジネス価値を考える. Retrieved from https://speakerdeck.com/dahatake/bizinesujia-zhi-wokao-eru 【書籍】 ✓ Wolfram, S., & Wolfram, S. (2023). ChatGPTの頭の中 (稲葉 通将 & 高橋 聡, Trans.) 早川書房. 私の拙い説明よりも・・・ ぜひ、この辺りの資料を参照してみてください! ChatGPT(LLM)ってそもそも何? どういう仕組みになっているの? どうやって始めればいいの?
  2. (補足)最終的に行きついたプロンプト # [写真]: 読み込んだ画像 # [項目]:""" ・NO.の列を作成(読み込んだ[写真]の順番に1から番号を振ってください) ・賃料(円、家賃などの表記を含む)("."区切りにしてください) ・徒歩(交通、線、駅、距離、所用時間、分などの表記を含む)(複数ある場合には最も値の小さいものを選択) ・築年数(FROM

    築年月 TO 2023年10月1日 で引き算を行い年数を算出する) ・建物の構造(次のうち当てはまる種別を選択:鉄筋(コンクリート)か鉄骨造(重量鉄骨)か軽量鉄骨か木造) ・面積(専有面積、広さ) ・物件のタイプ(間取り、間取りのテキストがない場合には各種情報から推定してください) ・住所(埼玉県から始まるテキスト) """ # [タスク1]:"""" [写真]に対してテキストの認識(OCR)を行って、[項目]を読み取ってください。 なお、[項目]が読み取れない場合には、[写真]の各種情報から推定を行ってください。 推定できない場合には、欠損(-)としてください。 """" # [タスク2]:"""" 読み取った[項目]をcolumnsとしてCSV形式で変数{dat}に縦結合して格納してください。 """“ # [指示]:""" [タスク1][タスク2]を行ってください。 """ RUN [指示] {dat}の出力のみを行ってください。 ただし、コマンド実行結果の出力は不要です。 ・エクスポートデータ(CSV/テキストファイル)をExcelにインポートする際には、区切り設定(カンマ区切り、スペース区切りなど)の影響を受けな いように、事前にデータテーブルを作成する際にプロンプトで指示しておいた方が良い これって結局プログラミング と同じじゃないですかね? プロンプトエンジニアという職業があるというけれど
  3. HTMLデータの取得 ⚫ <h2 class="name"> ⚫ <p class="info"> ⚫ <p class="address">

    ⚫ <p class="list_info"> ⚫ <p class="price"> シンプルな構造だとわざわざChatGPT を呼ばなくてもいい気がするぞい・・・
  4. ChatGPTにコードを書いてもらう page %>% html_nodes("h2.name") %>% html_text() page %>% html_nodes("p.info") %>%

    html_text() page %>% html_nodes("p.address") %>% html_text() page %>% html_nodes("ul.list_info") %>% html_text() page %>% html_nodes("span.price") %>% html_text() page %>% html_nodes(“td”) %>% html_text() # ハンドリングしやすいように適宜コードを追加 回す際には用法・用量を守って正しくお使いください time.sleep を噛ませることも忘れずに・・・ ざっくりと指示してもそれなりの結果を返してくれる 80点くらいの回答なのであとは自力で 100点まで持っていく この辺はタイパが良い方でFA
  5. データクリーニング データクリーニングを行うには、以下の一般的な手順を実施します。 1.重複データの確認と削除 2.欠損値の確認と処理 3.異常値や外れ値の確認と処理 4.データの型変換や正規化 まず、1.の重複データの確認と削除から始めます。 重複したデータが2行見つかりました。これらの重複データを削除します。 次に、2.の欠損値の確認と処理を行います。 欠損値は見つかりませんでした。

    次に、3.の異常値や外れ値の確認と処理を行います。このデータセットでは、"賃料" の列が数値データであり、外れ値の確 認が可能です。"賃料" の基本的な統計情報を表示して、外れ値を確認します。 "賃料" 列の基本的な統計情報を見ると、最大値が 19.0 となっています。これは他のデータと比べて高い値ですが、外れ値 として扱うかどうかはビジネスの文脈に依存します。 4.データの型変換や正規化: "賃料" 列はすでに数値として認識されています。他の列に関して、型変換が必要なものはあり ますか?特に、"広さ" 列には部屋のタイプと面積の情報が含まれていますので、これを分割して新しい列を作成することが 考えられます。 以上の情報を踏まえて、次のステップや特定の処理を指示してください。 さすがに外れ値・異常値の判断はわれわれ人 間の仕事ですかね 特徴量エンジニアリングもやってくれるみたい
  6. 予測モデルの構築 あなたは世界的に優秀なデータサイエンティストです。 賃料を予測するモデルを10個構築してください。 英語で考えて日本語で回答してください。 Take a deep breath and work

    on this problem step-by-step. データ型を設定してください。 • 名称:character • 住所:character • 賃料:numeric • 階数 (何階にあるのか):factor • 部屋のタイプ: factor • 面積 (m^2):numeric • 建築年数:integer • 建物の材質: factor 10個のモデルについて、評価関数MAEをクロス バリデーションで検証してください。 評価関数をグラフで比較して、最も精度の高い モデルを教えてください。 英語で考えて日本語で回答してください。 Take a deep breath and work on this problem step-by-step. LightGBMは使用不可 Xや生成AI系のプレプリント論文(https://arxiv.org)から使えそう な“おまじない“Optimization by PROmpting (OPRO)を選ぶべし
  7. 分析結果の裏で回っているコード from sklearn.linear_model import Ridge, Lasso from sklearn.tree import DecisionTreeRegressor

    from sklearn.neural_network import MLPRegressor from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler # Defining the models models = { "Linear Regression": LinearRegression(), "Random Forest": RandomForestRegressor(), "Gradient Boosting": GradientBoostingRegressor(), "Support Vector Machine": make_pipeline(StandardScaler(), SVR()), # Scaling is required for SVM "k-Nearest Neighbors": KNeighborsRegressor(), "Ridge Regression": Ridge(), "Lasso Regression": Lasso(), "Decision Tree": DecisionTreeRegressor(), "Neural Network": MLPRegressor(max_iter=1000), # Increased max_iter for convergence "Deep Learning": MLPRegressor(hidden_layer_sizes=(100, 50, 25), max_iter=1000) # 3-layer deep network } # MAE scorer for cross validation mae_scorer = make_scorer(mean_absolute_error, greater_is_better=False) # Evaluate models using cross-validation model_results = {} for name, model in models.items(): cv_score = cross_val_score(model, X_train, y_train, cv=5, scoring=mae_scorer) model_results[name] = -cv_score.mean() # Taking negative because we made MAE negative for maximizing # Plotting the results for better visualization plt.figure(figsize=(14, 7)) sns.barplot(x=list(model_results.values()), y=list(model_results.keys()), palette='viridis') plt.xlabel('Mean Absolute Error (MAE)') plt.ylabel('Model') plt.title('Model Comparison based on MAE') plt.show() # Getting the best model based on MAE best_model_name = min(model_results, key=model_results.get) best_model_mae = model_results[best_model_name] best_model_name, best_model_mae ちゃんとコードを書いてくれるので助かる! ChatGPTの神髄はこれこれ! ここからいくつかピックアップして改変したり、ハイパーパラメータ チューニングしたり、いろいろカスタマイズできる さすがChatGPT君ですね!
  8. 考察 考察: 残差が大きい物件は、モデルが実際の賃料と比較してかな り異なる値を予測していることを示しています。このような大 きな残差が発生する原因として、以下の点が考えられます: 1. データに含まれる外れ値や異常値により、モデルが 誤った予測をしている可能性。 2. 特定の物件の特徴がモデルの学習に用いられたデー

    タセットには十分に反映されていない可能性。 3. 他に影響を与える重要な変数がモデルから欠落してい る可能性。 残差の最大値と最小値の物件レコードを示してください。 そこから何を考察しますか? 最大の残差を持つ物件: 名称: 小峯マンション 住所: 埼玉県さいたま市大宮区天沼町2丁目 684 賃料: ¥10.2万 面積: 59.5 m2 階数: 1階 部屋のタイプ: DK 建築年数: 42年 建物の材質: 鉄筋コンクリート 最小の残差を持つ物件: 名称: B・キャッスルⅢ 住所: 埼玉県さいたま市大宮区大成町3丁目 367-1 賃料: ¥6.3万 面積: 25.83 m2 階数: 3階 部屋のタイプ: K 建築年数: 16年 建物の材質: 鉄骨造
  9. 考察 物件の賃料に影響を与える様々な要因や変数が考えられます。 以下は、現在のモデルには含まれていない可能性のある変数や要因の一部です: 立地に関する情報: 最寄り駅からの距離、主要駅や都心までのアクセス性、周辺の交通機関の利便性など。 周辺施設: スーパーマーケット、病院、学校、公園などの施設の有無や距離。 物件の設備: エアコン、オートロック、バルコニー、浴室乾燥機、駐車場の有無やその料金など。 セキュリティ:

    セキュリティカメラの有無、管理人の有無、オートロックの有無など。 階層に関する情報: 物件が何階建てで、その物件が何階に位置しているか、最上階や最下階であるかなど。 物件の向き: 南向き、東向きなど、部屋の向きや日当たりの良さ。 ペットの可否: ペットの飼育が許可されているか。 近隣の騒音: 鉄道や大通りなどの騒音、または静かな住宅地であるか。 これらの要因や変数をデータセットに追加することで、モデルの予測精度を向上させることが期待されます。 また、これらの変数の有無や値によって、物件の賃料にどのような影響を与えるかの洞察を得ることもできます。 他に影響を与える重要な変数がモデルから欠落し ている可能性。については何が考えられますか?
  10. 仮説検証と探索的データ分析に関するある実験 学生たちを 2 つのグループに分けた。 ◼ 「仮説あり」グループの学生たちには、次の 3 つの具体 的な仮説を検討するように求めた。 (i)

    男女の平均歩数には統計的に有意な差があること (ii) 女性では歩数とBMIの間に負の相関があること (iii) 男性ではこの相関が正であること また、データセットから他に結論付けることができることが あるかどうかも尋ねた。 ◼ 「仮説なし」グループでは、学生たちに単純に「データ セットから何を結論付けますか?」と質問した。 単純に歩数と BMI をプロットすると、ゴリラが手を振ってい るような画像が表示される。 特定の仮説に動かされた学生は、データをより広範に調 査するためのデータプロットという単純なステップをスキッ プすることが非常に多いことがわかった(ゴリラの見逃し)。 データセットには、1786 人の体格指数 (BMI) と、特定の日 に各人が歩いた歩数が 2 つのファイルに含まれている。 Yanai, I., & Lercher, M. (2020). A hypothesis is a liability. Genome Biology, 21, 231.
  11. Rumor has it that "Hidden Mickeys" were started as in

    inside joke of the Disney Imagineers. No matter if they were intentional or accidental, there's nothing like spotting one to bring a smile. WDWINFO. (n.d.). Hidden Mickeys. Retrieved October 1, 2023, from https://www.wdwinfo.com/wdwinfo/hiddenmickey.htm 「隠れミッキー」は、ディズニーのイマジニアたちの内輪ネタとして 始まったという噂があります。たとえそれが意図的なものであれ、偶 発的なものであれ、発見したときの笑顔は格別です。 Hidden Mickeys at Walt Disney World 筆者撮影 筆者撮影 https://ja.wikipedia.org/wiki/%E9 %9A%A0%E3%82%8C%E3%83%9F% E3%83%83%E3%82%AD%E3%8 同じゴリラデータでは芸がない ! “隠れた”といえばミ•キーマウスでしょう!
  12. 「隠れミッキー」疑似データ ✓ Wolfram|Alpha を用いてデータセットを構築 ✓ 歩行数とBMIに関するデータを男女それぞれ300 レコードずつ生成(2つのcsvファイル) ✓ 散布図 (Scatter

    Plot)を描画するとミッキーマウ スが現れるような疑似データを作成する ✓ ChatGPT4に読み込ませる (2023/10/01) 13 15 17 19 21 23 25 27 29 31 33 0 2000 4000 6000 8000 10000 12000 14000 body mass index steps female male
  13. Taskの検証手順 Task1 次の 3 つの具体的な仮説を検討してください (1) 男女の平均歩数には統計的に有意な差があること (2) 女性では歩数とBMIの間に負の相関があること (3)

    男性では歩数とBMIの間に正の相関があること また、データセットから他に結論付けることができるこ とはありますか? データセットから何か探 索的に結論付けられる ことはありますか? Scatter Plotを行ってくだ さい。グラフから何を結 論付けますか? Scatter Plotを行ってくだ さい。グラフの形状はあ る有名なキャラクターに 似ています。そのキャラ クターは何ですか? Task2 Task3 Task4 ChatGPTはどのフェイズで「隠れミッキー」を発見できるか 仮説検証 探索的データ分析 グラフ描画 グラフ描画と知覚 ※ Task2以降、冒頭に必ず次のプロンプトを挿入する「以前の指示を無視してください。次のタスクを行ってください。」
  14. Task1 仮説検証 了解しました。それでは以下の手順で仮説を検証します。 1.男女の平均歩数の差を検討するために、独立2群のt検定を行います。 2.女性の歩数とBMIの間の相関を調べるために、ピアソンの相関係数を計算します。 3.男性の歩数とBMIの間の相関を調べるために、ピアソンの相関係数を計算します。 これらの検証を行った後、データから他に結論付けることができるかどうかを考察します。 それでは、まず1つ目の仮説を検討します。 男女の平均歩数に関する独立2群のt検定の結果、t統計量は約-0.6593、p値は約0.5102です。 このp値は0.05より大きいため、男女の平均歩数に統計的に有意な差があるとは言えません。したがって、仮説(1)は支持されません。

    次に、仮説(2)と仮説(3)の相関について検討します。 以下は、女性と男性の歩数とBMIの間のピアソンの相関係数とそれに対応するp値の結果です: •女性:相関係数 = -0.2844、p値 = 0.00042 •男性:相関係数 = -0.2062、p値 = 0.0113 これらの結果から以下の結論を導き出すことができます: 2.女性の歩数とBMIの間には負の相関があり、この相関は統計的に有意です(p < 0.05)。したがって、仮説(2)は支持されます。 3.男性の歩数とBMIの間にも負の相関があり、この相関も統計的に有意です(p < 0.05)。しかし、この結果は仮説(3)とは逆の結果となっています。したがって、仮説 (3)は支持されません。 最後に、データセットから他に結論付けることができるかどうかを考察します。 データセットからの追加的な考察点: 1.相関の強さ: 両性ともに歩数とBMIの間に負の相関が認められましたが、相関の強さは中程度です。これは、歩数が増えるとBMIが減少する傾向があることを示 唆していますが、他の要因もBMIに影響を及ぼしている可能性があります。 2.男女の差: 仮説検証から、男女の歩数の平均に大きな差は認められませんでした。しかし、男女の歩数とBMIの相関の強さには若干の差があります。これは、歩 数とBMIの関係が男女で異なる可能性を示唆しています。 3.分布の確認: さらなる考察として、男女の歩数やBMIの分布を確認することで、データの特性や異常値の存在を把握することができます。 総合的に、このデータセットは、歩数とBMIの関連性に関する一般的な傾向を示していると思われますが、具体的な因果関係や他の影響要因については、さらな る研究やデータの収集が必要です。 もし、上記の分布の確認や他の分析を希望される場合は、お知らせください。
  15. Task2 探索的データ分析 データセットを探索的に分析することで、データの傾向や関係性を把握し、初期の結論を導き出す ことができます。以下の手順を提案します: 1.基本的な統計情報の取得: 各カラムの平均、中央値、標準偏差、最小値、最大値などの基本的 な統計情報を取得します。 2.分布の視覚化: 歩数とBMIの分布をヒストグラムや箱ひげ図を使用して視覚化します。 3.相関の確認:

    歩数とBMIの相関係数を再度確認し、散布図を用いてその関係性を視覚化します。 4.男女間の比較: 男性と女性の歩数やBMIの分布を視覚化して、違いを確認します。 まず、基本的な統計情報を取得し、その後に分布の視覚化を行ってみましょう。 各データセットに対する基本的な統計情報は以下のとおりです: 次に、歩数とBMIの分布をヒストグラムや箱ひげ図で視覚化します。これにより、データの分布や外 れ値を明確に認識できます。 視覚化の結果から以下の観察点を抽出できます: 1.歩数の分布: 1. 男性と女性の歩数の分布は似ており、特定のピークや偏りは確認されませんでした。 2. 箱ひげ図から、男性と女性の歩数の中央値はほぼ同じであることがわかります。外 れ値は特に確認されませんでした。 2.BMIの分布: 1. 男性と女性のBMIの分布も似ています。特定のピークや偏りは確認されませんでした。 2. 箱ひげ図から、男性と女性のBMIの中央値は非常に近いことがわかります。外れ値も 特に確認されませんでした。 以上の結果から、男性と女性の歩数やBMIには大きな違いはないことが示唆されます。データセッ トのサンプル数や取得方法、背景情報などを考慮すると、より詳細な結論を導き出すことができる かもしれません。 女性 (female.csv) の統計情報: •歩数 (steps) • 平均: 7093.32 • 標準偏差: 2896.54 • 最小値: 402 • 中央値: 6681 • 最大値: 12900 •BMI • 平均: 21.98 • 標準偏差: 4.54 • 最小値: 13.8 • 中央値: 21.65 • 最大値: 32.1 男性 (male.csv) の統計情報: •歩数 (steps) • 平均: 7318.88 • 標準偏差: 3027.36 • 最小値: 438 • 中央値: 7119 • 最大値: 12792 •BMI • 平均: 21.99 • 標準偏差: 4.51 • 最小値: 14.0 • 中央値: 21.2 • 最大値: 32.0
  16. Task3 グラフ描画 了解しました。男性と女性のデータセットそれぞれに対して、 歩数(steps)とBMIを軸にした散布図(Scatter Plot)を作成し ます。このグラフから、歩数とBMIの間の関係性やパターンを 視覚的に確認することができます。 散布図を作成し、その後で結論を導き出します。 散布図から以下の観察ができます: 1.歩数とBMIの関係:

    1. 両方の性別(男性と女性)において、歩数が増加する とBMIが低下する傾向が見られます。これは、歩数と BMIの間に負の相関があることを示唆しています。 2.男女の比較: 1. 散布図上で男性と女性のデータポイントが重なって いる部分が多く、特定の性別に特有の明確なパター ンやクラスタは確認されませんでした。 結論として、歩数が増加するとBMIが低下する傾向が男性と 女性の両方で観察されました。しかし、この関係性は弱く、多 くのデータポイントが散らばっています。これは、歩数とBMIの 間の相関が完全ではないことを示しています。他の要因(食 事、遺伝、生活習慣など)もBMIに影響を与える可能性があり ます。 どうやら気づいていない・・・
  17. Task4 グラフ描画と知覚 了解しました。まず、再度、男性と女性のデータセットに対して歩数 (steps)とBMIを軸にした散布図(Scatter Plot)を作成します。その後、 グラフの形状が似ていると思われる有名なキャラクターを推測して みます。 散布図を再度作成します。 散布図を確認しました。グラフの形状は、視覚的に解釈すると、ある 動物やキャラクターに似ているかもしれません。

    私の推測では、グラフの形状は「ペンギン」に似ているように見えま す。ペンギンのように、上部に頭、中央に体、下部に足のような形状 が見られるように感じます。 もちろん、これは主観的な解釈であり、他の人々が異なる印象を持 つ可能性もあります。 もしかして、こんな風に認識している?
  18. Additional Task5 グラフ描画と知覚(背景情報あり) 了解しました。指定された内容に従い、再度散布図を確認し、形状が 似ていると考えられるディズニーキャラクターを推測します。 散布図をもう一度見て、ディズニーキャラクターに似ているかどうか を考えてみましょう。 散布図を再評価しました。ディズニーキャラクターとして、この散布 図の形状は「ミッキーマウス」の顔や耳のように見える可能性があり ます。中央の大きなクラスタがミッキーの顔を、左右の小さなクラス

    タがミッキーの耳を形成しているように解釈できます。 もちろん、これも主観的な解釈ですが、ミッキーマウスがこの散布図 の形状に似ているディズニーキャラクターとしての最も可能性の高い 候補であると考えられます。 Scatter Plotを行ってくだ さい。グラフの形状はあ る有名なディズニーキャ ラクターに似ています。 そのキャラクターは何で すか? やはり背景情報は必要か・・・
  19. 結果 Chat-GPTはTask3で隠れミッキーを見つけることはできたが、 Task5で背景情報を教えるまでは認識することはできなかった Scatter Plotを行ってく ださい。グラフの形状 はある有名なディズ ニーキャラクターに似 ています。そのキャラ クターは何ですか?

    Task1 次の 3 つの具体的な仮説を検討してください (1) 男女の平均歩数には統計的に有意な差がある こと (2) 女性では歩数とBMIの間に負の相関があること (3) 男性では歩数とBMIの間に正の相関があること また、データセットから他に結論付けることができ ることはありますか? データセットから何か 探索的に結論付けら れることはありますか? Scatter Plotを行ってく ださい。グラフから何を 結論付けますか? Scatter Plotを行ってく ださい。グラフの形状 はある有名なキャラク ターに似ています。そ のキャラクターは何で すか? Task2 Task3 Task4 Task5 (Additional) (隠れミッキーの描画に成功) (ペンギンと認識)