Yonoseko's Working Diary

主にiPadでPythonを勉強したり、kaggleを趣味にすべく機械学習を勉強したり、ケーナの演奏をしたりする人の活動日誌です。

【かつて数学の偏差値50切ってたけど機械学習したくてkaggle参入を目標に勉強始めてみた】学習計画Ver 1.0

そのタイトル、Blogのタイトルにすれば良いんじゃないの、と思いつつ…

(このBlogは機械学習以外の作業も書くので、迷いながらタイトルつけたらこんなになりました。)

 

学習の記録だけだとアレなので、どんな学習計画を立てたのか記録しておきたいと思います。去年Pythonの学習を開始したところからどうぞ。

続きを読む

作業日誌2018-09-26

作業日誌2018-09-26

【やったこと】

  • CourseraのHow to Win a Data Science CompetitionのWeek2、EDAの実践〜Validationまで終了。

【わかったこと / 進捗があったこと】

  • index * feature statistic (feature1 *feature1.mean()など)の散布図はなるほど便利。
  • plt.plot(x, ‘.’)
  • train.nunique(axis=1) == 1のカラムは削除したほうが良い。役に立たないのにモデル作成時にメモリを食うため。
  • df.drop_duplicates()で値が丸々被っている行も消しておこう。
  • targetの平均と、訓練データのindex順にとった移動平均のグラフを描くことで、訓練データに偏りが無いかどうか確認できる。
  • EDAのチェックポイント
    • Get domain knowledge.
    • Check if the data is intuitive.
    • Understand how the data was generated.
    • Explore individual features.
    • Explore pairs and groups.
    • Clean features up.
    • Check for leaks!
  • 「print 'Train shape', train.shape」の形は出力に便利。
  • Numeraiという毎週データが変わるタイプのコンペがあるらしい。
  • sorted correlation heatmapで要素のグループ化が捗る。

【考えたこと】

  • NULL値の出力:train.isnull().sum(axis=1).head(15)
    • pd.info()の方が好きだなあ。

作業日誌2018-09-25

【やったこと】

  • CouseraのHow to Win a Data Science CompetitionのWeek2、EDAの匿名データの扱いまで終了。
  • 上記コースの最終アサインメントで変数の寄与度を見た。
  • ベルばら全巻が半額だったので買って一気読みした。

【わかったこと / 進捗があったこと】

  • 企業によって変数が加工してあるデータを使ったコンペがあることは知っていたけれど、値がハッシュされていることもあるというのは知らなかった。探索の仕方が面白かったけれど、実際のところはどれぐらい深掘りするのかなという気にもなった。
  • RandomForestでさくっと重要そうな変数にあたりをつけるのは便利だなと思った。
  • pandasのnuniqueメソッドを新しく覚えた。べんり。

【考えたこと】

  • Visualizationのチャプターがとても役に立ちそうで良い。
  • 現在の学習経路をtwitterで公開してみたら反応が大きかったので、今の自分の学習したい項目と、カリキュラムの予定を書いてみようかなと思った。

作業日誌2018-09-24

【やったこと】

  • CouseraのHow to Win a Data Science CompetitionのWeek1完了。
  • 上記コースの最終アサインメントに仕掛かり。
  • コスキン(笛)の練習

【わかったこと / 進捗があったこと】

  • Courseraの最終アサインメントは早いうちから取り組んだ方が良い。
    • submitの回数制限が週に5回。 -テキストデータの前処理で聞いたことのあるBOWやword2vec、n-gramについて包括的に理解できた。 -アサインメント、データの前処理中。以前より変数の追加はサクサクできるようになった。
    • しかしデータのテキストがロシア語でどうしたものかとなっている。
  • MacbookにJupyter入れておくとコインランドリーでも作業できる…が、plotly使わないならiPadのPythonistaでもいけたかな?と後から気づく。

【考えたこと】

  • 10月最初の連休は演奏会と小旅行で埋まりそうなので、Courseraを前もって進めておきたい。
  • 画像系の下処理の話が出てきたけれど、NNや画像認識の基本的な流れがあまりよくわかっていないので、AidemyのCNNによる画像認識をどこかのタイミングで進めておきたい。
    • Courseraの中で画像認識が取り立てて扱われないのであれば、終わってからでも良いかな。

作業日誌2018-09-23

【やったこと】

  • CourseraのHow to Win a Data Science CompetitionのWeek1、Pandasのアサインメントを完了。
    • 問4で2日間詰まっていたが、フォーラムに行ったら解消。問題文がわかりづらいけれど、item_cnt0未満のレコードを切り捨てるわけではなく、varで分散を求める際にddof=1を指定すると解決。
    • Week1のデータ前処理の部分まで終了。
    • 今まで知りたかった、「どんなモデルでどんな前処理をしたら良いのか」を学べて良かった。
  • 『Scikit-learnとTensorFlowによる実践機械学習』、2章まで読了。
    • 機械学習の手順をまとめておきたい。kaggleで写経したものも手順をまとめてあるので、「データの前処理」「モデル作成」「モデルの評価」などの手順ごとに、どんな手法を使ったのかでまとめておきたい。また、よく図式化されたものがなかなか無いので、ストックが溜まったらまとめる。
  • はてなブログで活動日誌を始めた。
  • 副業の打ち合わせをした。
    • はじめてスタバから電話会議で、ミーハーなので時代の最先端!とわくわくする。ノマド的な。
  • 個人Slackに「learning-product-mng」を追加。

【わかったこと / 進捗があったこと】

  • CourseraのJupyter NotebookのアサインメントはiPadでも投稿可能。
  • Pandasのvarメソッドでddofパラメータを使うと不偏分散を求められる。
  • One hot codingはnon-tree-basedでは大変重要。
  • データのscalingはnon-tree-basedでは欠かせないが、tree basedではよしなに扱ってくれるので不要。
  • XGBoostはNaNをよしなに取り扱ってくれる。
  • 欠損値の処理は値を予測できたり、平均や中央値で補って問題なさそうな場合はそのように。ただし、カテゴリ変数の前処理を施す前にやっておいた方が良い(欠損値を999などで埋めた後にLabelingしたら謎の495が生まれたりするのを防ぐため。)

【考えたこと】

  • ゲームではないプロダクトの企画に関するフレームワークを今一度整理しておきたい。マネタイズを含めたデザインをするにあたって、どういう手順を踏んで計画されるべきなのか、勉強しておく。
  • 個人Slackは考え事や記事の整理に大変便利。
  • やはり人生をGamificationする仕組みづくりにコミットしたい。

scikit-learnとTensorFlowによる実践機械学習

scikit-learnとTensorFlowによる実践機械学習

このBlogについて

このBlogは、ヨノセコがひたすらその日にやったことを記録していくものです。主に、特定のコンテンツとしてまとめるまでも至らない、毎日の小さな何かを記録します。

このBlogで進捗を重ねつつ、ある程度まとまったものをnoteなどで発信したりしていけたらなと思います。