最近ではChatGPTみたいな感じの生成AIがたくさんあり、だれでも簡単にプログラミングを行うことができるようになってきました。こういった生成AIのツールをうまく活用することでより効率的にデータの解析を行うこともできるようになるといえます。
特に研究領域に所属している大学院生やポスドク(筆者もその一人です)のとって、これら技術発展の恩恵は非常にありがたいです。
しかしながら、プログラムを自動で生成出来るとはいっても、意味のあるものを生成することができなければ意味はありません。
そこで、ChatGPTを使ってうまくプログラムを生成するうえで留意しておきたいことについて、筆者が普段使っている留意点、前提知識としてどのようなことが必要になるかということを紹介していこうと思います。
解析プログラムをChatGPTで生成するならpythonがおすすめ
プログラミング言語といっても種類は多く、用途によって使い分ける必要があります。マイコンとかハードとかを扱うのであればC系の言語になるだろうし、3DとかVRとかをUnityとかのゲームを扱うのであればC#になるし、アンドロイドアプリだったらJavaとかになるといった感じです。
これらいろいろなプログラミング言語がある中で、研究領域とか普段の仕事で解析とかをやるのであれば、pythonが圧倒的におすすめだと筆者は考えます。
解析に明るいプログラミング言語には、pythonの他にもRやMATLABがあります。これらのプログラミング言語にもそれぞれ利点はあります。例えば、Rであれば比較的複雑な統計解析を操ることができる点であったり、MATLABは公式ドキュメントが充実している点であったりするので、そこに惹かれる方はそちらのプログラミング言語を選択することも視野に入れてもよいでしょう。
これらの他のプログラミング言語を差し置いて、筆者がpythonを推す理由としては、圧倒的な拡張性の高さが第一に挙げられます。基本的な解析であれば、pythonで出来ないことは何し、最近流行している機械学習とかディープラーニングなどにもアクセスしやすいです。そのため一度しっかりとpythonでプログラムを書ける環境さえできてしまえば、できないことがあって困ることはほとんどないと思います。統計解析に特化したRと比較した時のpythonの利点がこれにあたると思います。
さらにpythonは無料で利用することもできるので参加するうえでの障壁が低いといえます。これはMATLABに対する利点になります。MATLABは公式がしっかりとしていて、かつ研究領域で広く使われているので大学院生などは扱いやすいとは思いますが、有料であるかつ公式以外のコードの情報が少ないことが欠点だといえます。
これらの利点欠点を踏まえて、次の項ではpythonとchatGPTをうまく使って楽にプログラミングを習得する方法(というか経験談)をまとめていきます。
解析目的でChatGPTを使ってpythonを習得するうえで最低限必要なこと。
ChatGPTはコードを生成はしてくれますが、どんなコードを生成するかは質問する我々にっよって決まってきます。曖昧な指令だと意図したコードを生成してくれず、結果として時間がかかってしまいます。
比較的狙ったpythonコードを生成するうえで、筆者がよく重宝使っているのは、雑にこういうことをしたいというサンプルコードをChatGPTに渡してそれを修正してもらうというのが早いです。特にこの手法はデータから散布図とか折れ線グラフとか凡例とか細かい図表を作るときの時短に有効だと思っています。
こういったことから、ChatGPTでうまくコードを生成してもらうためには、最低限のコー^ディング技術とデータ配列の知識が必要になります。ここでいう最低限のプログラミング技術というのは、python上でデータを読み込んで(csvとかexcelとか)、読み込んだデータに名前を付けるとかそういったレベルになります。これさえできてしまえば、グラフなど図表はすぐに生成できるようになります。
データ配列の知識というのは、このデータは何行何列とかそういった性質のものになります。配列同士の計算とかを扱うときに必要な知識になります。
こういった処理を行っていく中で徐々に何を書いているかを読めるようになってくるとおのずと経験値もたまって、自分自身で書けるようになってくるし、その繰り返しをしていくとさらにChatGPTに適切な質問を渡せるようになると思います。
pythonプログラミングを実現するための難所は実は環境構築
個人的にpythonプログラミングを始めるうえで一番ネックになるというか、わけわからんってなるのは、pythonプログラミングを自分のパソコンで出来るようにするための環境づくりだと思っています。
筆者の場合には、直接対面だったりzoomミーティングで連絡と取りながら、個別にインストールとか、ほかに必要な拡張機能とかを入れたりするのを手伝ったりして実装するのですが、そういった人がいなく、一人で始めないといけない場合には、非常にハードルが高いところだと思います。
今後のこのブログの内容について
久しぶりにこのブログを更新しましたが、これからの内容については、①超絶初心者でもできるように動画付きで解説するレクチャー、②筆者の備忘録として残しておくマニアックな解析手法、データ提示方法、の二本立てで行う予定です。
筆者のバックボーンは動作解析、特にリハビリに関係する領域なので、特に理学療法士や作業療法士の臨床家が利用できるプログラムだったり、初心者向けレクチャーだったりといった内容に注力していこうと思っていますのでよろしくお願いします。