機械学習コンペってどんなことをやってるの?
皆さんこんにちは!いかがお過ごしでしょうか!
僕はプログラミングを勉強しています。
勉強の一環で機械学習コンペに参加しました。
今回は機械学習コンペってどんなことをやっているのかについて解説します。
機械学習についてわからない方も理解できるようにしてみたので、ぜひ読んでみてください。
機械学習コンペとは
たくさんのデータを渡すので、学習モデルを作ってください
機械学習コンペでは、課題に対してあるデータが与えられるので、予測モデルを作ります。
その後にデータを与えて精度の高い予測ができるモデルを作ることができるかを競っています。
後ほど今回参加したコンペを例にお話します。
機械学習コンペを開催しているプラットフォーム
機械学習コンペを開催しているプラットフォームはたくさんあります。
有名なのはKaggleですね。運営はなんとあのGoogleです。
Kaggleにはデータ分析ができる猛者達が世界中から集ってきます。
日本国内ではSignateやNishikaなどのプラットフォームがあります。
今回は初心者でも参加しやすいSignateのコンペに臨みました。
今回参加した機械学習コンペ
今回はSIGNATEさんが開催している初学者限定コンペ「債務不履行リスクの低減」に参加しました。
果たしてどういうことをするのか。。
理解してもらえるようにちょっとしたストーリーを作ってみました。
以下のようなイメージです。
あなたはとある銀行の銀行員です。
銀行はお金を貸して、貸した分の利息を収入としています。
ある日上司にこう言われます。
もっと多くの人にお金を貸したい。
だが、ちゃんとお金を返してくれる人だけに貸したいから、AIで予測できるようにしてくれ!
はい!これ顧客データね。(ドンッ!)
そう言って、たくさんの顧客データをあなたに渡しました。
あなたは顧客データから「返済能力があるか判別するマシン」を作って、ちゃんと返済してくれるかどうかを予測する仕組みをつくることになりました。。
というお話です。(あくまでもイメージですよ!)
このように機械学習コンペではある課題が与えられます。
課題に対して精度の高い学習モデルを作成できるかを競います。
与えられるデータ達
運営から与えられるのは「学習データ」と「テストデータ」です。
「学習データ」には
- ローンの金額
- ローン年数
- お金の使用目的
- 返済したかどうか
などが記録されています。
一方、「テストデータ」にも同様に
- ローンの金額
- ローン年数
- お金の使用目的
が記録されております。
がしかし、「テストデータ」には肝心な「顧客が返済できたかどうか」が記録されていません。
ということで、「学習データ」からモデルを作成して、「テストデータ」の顧客が返済できるかを予測しましょう。
パソコンカタカタ。。。
「こういう人は返済したけど、こういう人は返済できなかったよ。。」っと
そうして完成したモデルに「テストデータ」を入力すると、返済できるかどうかを予測します。
モデル
このくらいの人は返済できそうデス
このくらいの人は返済できなさそうデス
このくらい。。。
そうしてモデルが予測した回答を運営にアップロードすると答え合わせをしてくれます。
回答をチェックしてくれた後に、正解率が高いモデルから順位がつけられます。
ある一定の期間が経過すると締め切られて最終結果が発表されます。
今回の機械学習コンペの結果
さて、コンペの提出期間が終了し、順位が確定しました。
結果は。。。153位(228人中)
散々の結果です(笑)
まとめ
今回は機械学習コンペについてお話しました。
データの欠損など細かいところは省略していますが、こんなことがされてるんだと理解してもらえると嬉しいです。