DataRobotってデータを入れれば結果がすぐ出るのは便利だけど、そのデータをエクセルで準備するのはものすごく大変です・・・。 何かデータの準備にオススメなツールや方法とかありますか? 頑張ってプログラム言語とか覚えるべきでしょうか・・。
データ準備って本当に大変ですよね。私はPythonやJavaなどのプログラミング言語を使っていて、データ準備・加工に関わる様々な作業を効率的にすることができます。特にPythonは比較的簡単な言語で、Pandasなどのデータ分析に適したライブラリもあって、おすすめです。ただ、やはり勉強するには一定の時間がかかりますし、もっと直感的に使えるものがいいということであれば、私は使ったことないですが、AlteryxやPaxataといったツールを使うのも一つの手のようです。
規模にあったツールを選ぶのがいいと思います。
PaxataはGUIユーザーフレンドリーで便利ではありますがものとしてSparkベースなので大容量のデータを変換するのに向いています。逆に小容量データ中心であるならば持て余す可能性もあります。
AlteryxなどもGUI付きでPaxataと同じように簡単に習得できますが、デスクトップで動くものが主流でより軽量なデータに対応しています。
プログラミングが苦手でなければ、ライブラリも多いPythonはやはりおすすめです。ただ自分の触れるシステム環境によってはSQLを覚えてしまった方がデータベースを直接叩けるのでパフォーマンス面で圧倒的に便利なことも多いです。
逆に千行未満のデータであったりすると私もExcelでそのまま関数使いながら加工してしまうことがあります。PaxataのSaaS版という選択肢もありますが、SaaSに上げられるかの判断もいらないですし、何よりも生データを見ながらダイレクトに弄れるのは強力なツールです。難しい手法を使いこなすよりも早く簡単にできてしまうほうが私は大切だと考えています。
機械学習系で利用する集計処理やエンコーディングの処理は一定のパターンに落ち着くので、まずは簡単な処理の実装が上記のツールそれぞれでどうやって実現できるのかを見て、データサイズとUXから決めてしまうのがいいと思います。
また大事なのは誰か他の人が先にやったデータ準備ならばそれをそのまま引き継ぐのが一番楽なので、データのカタログ化をしっかりと行い、車輪の再開発が起きないようにすることが重要です。
そもそもDataRobotにおいては必要でないデータ準備をしているケースもあるのかなと思って追記です。
以下はDataRobotが自動でしてくれるのでデータ準備で工数を割いているなら、ツール云々関係なしに全部スキップできてしまいます。
もちろんドメイン知識に基づいたデータ準備やゼロから一つ目のテーブルを作るデータパイプライン作成やクエリ処理、コンペでのギチギチの精度向上を狙ったマニアックな特徴量エンジニアリング(実務ではいらないケースが多い)などは残っていますが、DataRobotは多くの機械学習の技術的な特徴量エンジニアリングを自動化してくれるので、今やっているデータ準備って本当に必要なのかというのを改めてリデザインしていただくとものすごく効率がよくなるかもしれません。