機械学習の工程・プロジェクトの進め方
機械学習のプロジェクトをすすめる際には、データ準備、予測モデル作成、評価、実装の4つの工程を行う必要があります。ここからはこの4つの工程について詳しく見ていきましょう。
データ準備
コンピュータに学習させるためには、まずデータを準備しなければなりません。社内のデータベースから集めたデータを集めることが多いですが、社外のSNSデータやオープンデータと組み合わせることもあります。集めたデータの中に欠損値や異常値があることも多いため、前処理やデータクレンジングをしてから機械学習に利用します。文字データを数値データに変換するなどの作業もあり、データ準備は機械学習の中でも8割ほどを占める重要な工程と言われています。
モデル作成
データ準備が終わると、分析目的や検証する課題を選定してAIモデルの作成を行います。この工程で重要になるのが、どのようなアルゴリズムを使うか検討したり、使用するアルゴリズムのパラメータチューニングを行うことです。Logistic RegressionやSupport Vector Machinesなど様々なアルゴリズムがあり、それぞれ精度の違いや得意とするものが変わるため、目的に合わせ使用するアルゴリズムを決めます。
モデル評価
作成したばかりの予測モデルは正しい予測ができるのか分からないため、まずはテストしなければなりません。ほとんどの場合1回目のテストでは予測精度が高くないため、問題点を見つけ1からデータ準備をやり直し、使用するアルゴリズムを変更したり、使用するデータを変えたりして試行錯誤を繰り返します。何度も評価を繰り返し、予測精度を上げることがこの工程の重要なポイントです。
実装
評価を繰り返し十分な予測精度を持つモデルが作成できたら実装に入ります。API経由でアプリケーションと連携させる方法や、パッチ処理によって予測を行う方法など、様々な実装方法があります。予測結果をリアルタイムに確認したいならデータ反映もスピーディーに処理する必要があるなど、要件に合わせてどの実装方法を決めることが大切です。
機械学習の案件で利用するライブラリ
機械学習では多くのライブラリが使用されます。では、機械学習の案件ではどういったライブラリが利用されているのか見ていきましょう。
NumPy
機械学習の案件で最も多く利用されるライブラリがNumPyです。これは数値計算を行う際に使われるライブラリで、NumPyなくして機械学習プログラミングを行うことは困難でしょう。NumPyには様々な機能がありますが、中でも重要になるのがnumpy.ndarrayです。行列計算に特化したクラスで、高速で行列計算ができるためndarrayを入出力として扱うケースが多くあります。
Pandas
テーブルデータを取り扱うためのライブラリがPandasです。機械学習ではテキスト情報や数値を扱うことが多いため、データ整形や総計量の算出、表計算などテーブルデータを扱う時に役立つ機能が多く備わったPandasが、機械学習業界のデファクトスタンダードになっています。他ライブラリの入出力で使われる機会はそれほど多くありませんが、入出力をする際の前処理、後処理でよく利用されるライブラリです。機械学習の案件では、前処理のスクリプトがPandasで書かれているケースも多いので、どのようなライブラリなのか把握しておくとよいでしょう。
Matplotlib
Matplotlibは、グラフを描画することに特化したライブラリです。学習経過をグラフ化する、画像を出力するなどの機能が機械学習でよく利用されています。分析対象となるデータの傾向を可視化する際や、スコアの変化を分かりやすく描画する時などにMatplotlibを使用することが多いです。インタラクティブなグラフの生成やヒストグラムを描くことも可能なライブラリで、機械学習において様々な場面で利用されるため知っておいて損はないでしょう。
scikit-learn
scikit-learnはPythonの中でもよく知られる機械学習ライブラリで、様々な機械学習アルゴリズムを含んでいます。機械学習の業務で使用される機会は多く、工程に関わらずプロジェクトの始めから終わりまで幅広く利用されます。scikit-learnに含まれる膨大なアルゴリズムを覚えるのは大変ですが、機械学習ではデータに合わせて最適なアルゴリズムを選択することが重要になるので、しっかり理解しておく必要があります。
Gensim
Gensimは、topic modelingに特化したライブラリで、テキストデータなどに対して用いられることが多いです。fasttextやword2vecなどの分散表現モデルが利用できるということで、機械学習の業務で使用される機会が多くなっています。テキストデータ内に含まれる単語と似ている単語を抽出し辞書を作成したり、文章や単語を数値に変換したりすることも可能です。これを利用し辞書やWikipediaなどの文章を集め学習させ、コンピュータに文章の修正や拡張を行わせることもできます。
機械学習の活用事例
機械学習が実際どのような場面で活用されているのか気になる方もいるでしょう。マーケティング分野や医療分野などで利用されている、機械学習の活用事例を紹介します。
マーケティング分野
マーケティング分野では、カスタマーの趣向性を分析する際などに機械学習が活用されています。住んでいる場所や年齢、性別などのデータをセグメント化し、機械学習のアルゴリズムを用いて閲覧情報や購入情報を学習させることで、カスタマーがどういった商品を好んでいるのかを分析することができます。その結果をリコメンデーション機能によりカスタマーへおすすめとして提示すれば、購買意欲を高められます。
製造分野
製造分野では、製品の売上や需要を予測する際に機械学習がよく使われています。他にも商品を作る際の材料の特性予測を機械学習で行い、テストや材料選定を効率化し市場に製品を送り出すまでの時間を短縮している活用事例もあります。製造ラインで問題になることが多い不良品や設備故障を機械学習に予測させ、コスト削減に成功している企業も多いです。
金融分野
金融分野でも機械学習を取り入れている企業は多いです。株のトレーディング業務において、取引に機械学習のアルゴリズムを取り入れたり、株価の予測に活用したりするケースがあるほどです。金融分野では不正取引が問題になることが多いですが、機械学習が監視業務を高度化するために役立ちます。不正売買かどうかを自動的に判別し、未然に防ぐために機械学習が活用される事例もあります。
医療分野
医療分野では、診断の手助けとして機械学習が利用されるケースもあります。レントゲンの画像や血液データ、CT画像などを機械学習でコンピュータに取り込み、相関性やパターンを学習させることで身体の異常を見つけ出し、医師の診断の手助けをするのです。ただし、診断は患者の命に大きく関わるため、あくまで最終的な診断や治療方針の決定などは医師自身が行います。