機械学習の勉強を始めました。
最近、機械学習の勉強を始めました。
プログラミング、特にPythonを使って何かをやってみたかったのと、機械学習を勉強して仕事で約二立てたいと考えています。
現実で何かしらの判断を求められる時に、統計的な分析を行うことで判断材料の一つとなり、その結果正しい選択肢を選んだり、誤った選択肢を選ぶことが少なくなるかもしれません。
具体的にどのように活用できるのか、そもそも機械学習の内容を理解して実践することができるのかまだわかりませんが、勉強して躓いた点、わからなかった点、逆に理解できたことなどはこのサイト上でメモしていきます。
日本語のSIGNATEでまずは挑戦
機械学習と言うと、Kaggleというコンペサイトがかなり人気です。
初学者向けの解説記事や書籍も数多く出ており、人気のテーマであることを感じます。
Kaggleは基本的に英語で運営されていますが、私自身は英語が得意ではありません。
ただでさえ英語がわからないのに、さらに機械学習という初めて触れる分野の勉強と合わせて進めるのは至難の業、というか正直しんどいのにで、まずは日本語で運営されているSIGNATEというコンペサイトに挑戦してみることにしました。
Kaggleでは様々な主体が賞金を出して課題を出していますが、SIGNATEでも企業から賞金付きの課題が出ていますし、動画コンテンツによる学習教材が一部無料で提供されているようです。
第6回_Beginner限定コンペ「PCゲームの勝敗予測」に挑戦
初の機械学習コンペはここから始めてみることにしました。
キル・デス数などのデータを使ってゲームの勝敗を予測する問題です。
間違っているかもしれないと思いながら書いていますが、二値分類問題です。
期限は1/31までで、78.5%以上のスコアを出すことができればBeginnerから次のランクへアップします。
今回はひとまずBeginnerの次のランクであるIntermidiateへの昇格を目指します。
データに欠損はなく、しかも全てint型なので、初心者向けにデータの前処理の負担を相当軽くするために考慮してもらっていることがわかります。感謝。
とはいっても、何から始めたら良いか最初はわからなかったので、課題に挑戦しようと思った5分後にはまた別のコンテンツで勉強を始め、課題から遠ざかってしまっていました。
Kaggleへの挑戦はまだですが、いわゆるKaggle本を読みながら何をすれば良いか確認しつつ進めています。
まずは、データの理解と言うことでデータの読み込み、探索的データ分析(EDA)から行っています。
クロス集計や相関係数を計算してみても、勝敗データと相関が大きそうなデータはすぐに見つからず、新たに特徴量を作り出そうにもその見当がつきませんでした。
そのため、まずは与えられたデータをいじることなく、そのまま学習させてみることにしました。Scikitlearnのサポートベクターマシンを使って解いています。
先週の土日と今日トライしてみて、何とか予測データの提出までこぎつけました。正答率76%までは行けたのですが、ガンマやCなどハイパーパラメータを少しずつ変えてみながら提出を繰り返していたら一日の投稿制限に達してしまいました。
今は学習に使用するデータの選択やハイパーパラメータの調整、他の機械学習の手法について調べています。
コメント