前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
データサイエンスに親しむことが当面の目標です。
今回は、AIにコードを書かせてみました。
「作り方」を学ぶと開発効率が上がります。基本的な構造を理解したら、あとはChatGPTに書かせる。自分で1から書くよりもずっと早い。修正も簡単にできる。 pic.twitter.com/hMUibRj7OF
— よだか(夜鷹/yodaka) (@yodakablog) January 8, 2024
Pythonで表を描かせる仕組みを覚えたので、AIに指示を出して描かせる実験です。
ChatGPTに出した指示と最終的に仕上がったコードを載せておきます。
準備(JSONファイルの生成)
今回指定したJSONファイルは、以下の記事のコードを使って生成したものです。
Pythonの動作環境があれば、誰でも実行できます。
ローソク足チャート
Pansdasを使って以下のJSONファイルのデータを読み込んで、ローソク足チャートを作るコードを書きなさい。
ファイルパス「/ファイルパス/minute_candlestick_data.json」
ファイルデータのサンプル「{"timestamp": "2023-11-07T09:57:00", "open": 5501400.0, "high": 5501400.0, "low": 5501400.0, "close": 5501400.0, "volume": 0.02, "trades": 2} {"timestamp": "2023-11-07T09:58:00", "open": 5499750.0, "high": 5499750.0, "low": 5499487.0, "close": 5499487.0, "volume": 0.02, "trades": 2}」
上記のコードに追記して出来高も表示するようにして
作成される表を縦横2倍の大きさにしたい。どうしたら良いか?
import pandas as pd import matplotlib.pyplot as plt import mplfinance as mpf # JSONファイルの読み込み file_path = '/ファイルパス/minute_candlestick_data.json' df = pd.read_json(file_path, lines=True) # タイムスタンプを日付型に変換 df['timestamp'] = pd.to_datetime(df['timestamp']) # データフレームのインデックスを設定 df.set_index('timestamp', inplace=True) # グラフの作成 fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, gridspec_kw={'height_ratios': [3, 1]}, figsize=(12, 8)) # ここでfigsizeを設定 # ローソク足チャートの作成 mpf.plot(df, type='candle', ax=ax1, volume=ax2, show_nontrading=True, warn_too_much_data=len(df)) # グラフの表示 plt.show()
自前のJSONデータから、ローソク足チャートが生成されました。
ヒートマップ
pythonを使って以下のデータをもとに「出来高とその他の値の相関を示す表」を出すコードを書きなさい。
ファイルパス「/ファイルパス/minute_candlestick_data.json」
ファイルデータのサンプル「{"timestamp": "2023-11-07T09:57:00", "open": 5501400.0, "high": 5501400.0, "low": 5501400.0, "close": 5501400.0, "volume": 0.02, "trades": 2} {"timestamp": "2023-11-07T09:58:00", "open": 5499750.0, "high": 5499750.0, "low": 5499487.0, "close": 5499487.0, "volume": 0.02, "trades": 2}」
import json import pandas as pd # ファイルパス file_path = "/ファイルパス/minute_candlestick_data.json" # JSONファイルからデータを読み取り with open(file_path, 'r') as file: data = [json.loads(line) for line in file] # Pandas DataFrameに変換 df = pd.DataFrame(data) # 出来高とその他の値の相関を示す表を作成 correlation_table = df.corr() # 結果の表示 print(correlation_table)
このままだと、表だけで分かりづらいので視覚的に分かりやすいタイプに変えてもらいましょう。
視覚的にわかるようにできる?
import json import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # ファイルパス file_path = "/ファイルパス/minute_candlestick_data.json" # JSONファイルからデータを読み取り with open(file_path, 'r') as file: data = [json.loads(line) for line in file] # Pandas DataFrameに変換 df = pd.DataFrame(data) # 出来高とその他の値の相関を示す表を作成 correlation_table = df.corr() # ヒートマップを作成 plt.figure(figsize=(10, 8)) sns.heatmap(correlation_table, annot=True, cmap="coolwarm", fmt=".2f", linewidths=.5) plt.title('Correlation Heatmap') plt.show()
あっという間にヒートマップが生成されました。
ヒートマップも一瞬で書いてくれる。有能。ここから色々いじっていきます。 pic.twitter.com/T2gWqYhpKe
— よだか(夜鷹/yodaka) (@yodakablog) January 8, 2024
まとめ
ここまでの流れでかかった時間は約10分でした。
自分でコードを書くよりもはるかに速いです。
データ分析の基礎は、AIにやってもらうのが有効かもしれません。
そもそも、データ分析をするコード自体をAIに書いてもらって、その上で検証までAIにさせ続ければものすごく楽になるはずです。
ようやく基礎固めができたと思ってこの調子で学習を進めます。