不器用貧乏

広く浅く手を出したり出さなかったりする.

Dairy-KKNK

 
使用曲リスト
どかーん
撲殺天使ドクロちゃん true my heart
 
Daydream café
リフレクティア
光るなら
 
カレンダーガール
First kiss
Romantic Now
魔理沙は大変なものを盗んでいきました
U.S.A.
HOT LIMIT
極上スマイル
どう考えても私は悪くない
L・O・B・M
 
ファミリーマート入店音
家に帰ると妻が必ず死んだふりをしています
ハンマー音
スーパーマリオブラザーズ メインテーマ
中二の俺がスーパーマリオブラザーズ
頑張って耳コピしてみた
Southern Cross スーパーマリオワールド 地上BGM
かくしん的 めたまるふぉ~ぜっ!

 


 
Twitterで「毎日駆け抜けチャレンジ - Twitter Search」というタグを見かけたので便乗して作りました.
音の共有とか類似を中心に使って短く楽曲を繋いでいくっていう,僕の思う駆け抜けメドレーを作りました.本当は重ねる気はなかった.
甲子園面白かったので,その応援歌と,頭の中でぐるぐるしてたU.S.A.周りの繋ぎを中心に構成しました.
 
頭にあるメロディのタイトル特定する時間 + その合間に観たインパルスとアンジャッシュの時間 = 打ち込み + 構成
くらいの時間配分で結構時間かかりました.
 
つづかない. 
 

SuddenMedley - 1

 

使用曲リスト
My Silky Love
疾走あんさんぶる
 
ロマンス
 
千本桜
吹雪
 
VOLT-AGE
 
VOLT-AGE
 
Matching
 
Matching
 
地球最後の告白を はやくそれになりたい!
それは僕たちの奇跡
地球最後の告白を
はやくそれになりたい!
True my heart
ゆりゆららららゆるゆり大事件
ゆりゆららららゆるゆり大事件(安元ver.)
ゆりゆららららゆるゆり大事件
はやくそれになりたい!
恋の2-4-11
Happy Girl
 
 
 

 
 サッカー観てて暇で思い立って作った.
 つなぎ被ってたらごめん.

kaggleを始めてみて提出してみた話

はじめに


データを分析に関する知識も経験もないんですが,前々からkaggleに手出してみたいと思っていたので,始めてみました.
基本,「Kaggle事始め」を参考に進めました.
 
 

コンペのデータセット等をダウンロード


データセットダウンロードを,コマンドラインからできるっぽくて,「Kaggle をコマンドラインで操作する - CUBE SUGAR CONTAINER」を参考にやってみました.
始めるならやっぱりtitanicからだろうと思って, 

kaggle competitions download -c titanic

したんですが,以下のエラー.

...
(略)
...
HTTP response body: b'{"code":403,"message":"You must accept this competition\\u0027s rules before you can continue"}'

多分,コンペが終了してるのが原因じゃないかと思ってます.
おとなしくDownloadボタンでダウンロードしました.
 
 

データセットの処理


処理に使ったコードはGistに.ipynb形式で置きました(kaggle_titanic.ipynb). データセットの処理は,流れの大枠を「Titanic日本語チュートリアル koji | Kaggle」を参考にしながら,自分なりにコードや処理を書き換えて行いました. また,コードを書くのと並列して「前処理大全[データ分析のためのSQL/R/Python実践テクニック]」を読み進めました.


流石にこのまま提出するのはマズいので,ちょっとだけ処理に手を加えました.



リストワイズ除去

与えられたデータには欠損値があり,参考にしたコードでは,Embarkedの欠損値を最頻値の「S」で埋めていました.
前処理大全によると,そもそも欠損値は大きく次の3つに分けられるようです.

  • MCAR (Missing Completely At Random):偶然起きているランダムな欠損.
  • MAR (Missing At Random):他の項目データに依存した欠損.
  • MNAR (Missing Not At Random):欠損している項目データに依存した欠損.

MARやMNARにおいては,ある特定の傾向があるデータを削除することになるため,全体の傾向を把握できなくなる恐れがあります. 今回のEmbarkedはMCARに当たり,2件くらいなら削除してもいいのではないかと考え,除去しました.

※当初,テストデータのFareもリストワイズ除去を行ったんですが,提出したときにデータ数が合わなくなったため,参考したコード通り平均値で埋めました.

グリッドサーチ

参考にしたコードでは,K近傍法,決定木,SVC,AdaBoost,GBMのトレーニングデータによるAccuracyを比較し,最も高い精度を出したモデルで予測を行っていました.
この内,最も高いAccuracyだったGBMに対して,「Complete Guide to Parameter Tuning in Gradient Boosting (GBM) in Python」を参考にグリッドサーチすることにしました.
グリッドサーチするまでの流れは,参照サイトと同じように進めたのですが,いくつか手を加えました.

from sklearn.grid_search import GridSearchCV

でインポートしようとしたところ,以下のように出てきました.

/usr/local/lib/python3.6/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
  "This module will be removed in 0.20.", DeprecationWarning)
/usr/local/lib/python3.6/site-packages/sklearn/grid_search.py:43: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.
  DeprecationWarning)

多分,「sklearn.grid_searchsklearn.model_selectionに移したから,0.20で削除されるよ」と言ってるものだと解釈し,

from sklearn.model_selection import GridSearchCV  

のように書き直しました.(これでいいのか...?)

パラメータ

参照サイトでチューニングしていたパラメータのうち,max_features,subsampleに関しては,グリッドサーチした結果roc_aucが下がってしまうため(なぜ?),チューニングしませんでした.
 
 

提出


グリッドサーチする度に結果が変わることに困惑しつつ(こういうものなのか?),roc_aucが1.3%程上昇したため,結果を提出しました.1日5回ほど提出できるようだったので,コロコロ変わる結果を5回提出しました.
結果は,0.78947で3454位/11236人中でした. f:id:satory074:20180602201402p:plain

 
 

おわりに


今回かねてよりやってみたかったkaggleに手を出して,ひとまず提出するところまでできたのでよかったです.
特にグリッドサーチなんかは,謎な部分(グリッドサーチしたらroc_auc下がるとか,値がコロコロ変わるとか)を謎のまま放置しているので,そのうちちゃんと原因考えようと思います.
それと,思ったより精度が上がらなかったので,kernel読むのを筆頭に,「How to Win a Data Science Competition: Learn from Top Kagglers | Coursera」等で,やり方を勉強していきたいと思います.
あとは,今回はコードを改変する形で進めたので,早くコピペすることなく自分で書けるようになるといいなあ.
 

おわり.

 
 

リンク集


Kaggle事始め

kaggleを始めるところから提出するまでの大まかな流れを参考にした

Kaggle をコマンドラインで操作する - CUBE SUGAR CONTAINER

コマンドラインからコンペのデータをダウンロードする際に参考にし(ようと)た

Titanic日本語チュートリアル koji | Kaggle

入力データを処理して提出データを出力するまでのコードを参考にした.

前処理大全[データ分析のためのSQL/R/Python実践テクニック]

前処理の仕方を読んだり参考にしたりした.

Complete Guide to Parameter Tuning in Gradient Boosting (GBM) in Python

グリッドサーチでパラメータをチューニングする流れを参考にした.

How to Win a Data Science Competition: Learn from Top Kagglers | Coursera

やり方勉強するならこれかなと思ってリンクを貼った.

DailyMedley-20180324-13

 
使用曲リスト
Wind Climbing
~風にあそばれて〜
あなたの歌姫
 
いすゞのトラック
ガーネット
なわとび
 
Best Friend
 
Just Be Friends
Dear
初めての恋が終わる時
君の知らない物語
ようこそジャパリパークへ
 
君の知らない物語
LOVE & JOY
ニコニコ動画流星群 時報 (LOVE & JOY)

 


 
9日ぶりメドレー.もはやデイリーじゃないじゃんと思ってたら,今日ウィークリーという都合の良い単語をひらめいた.
次からは流星群にのせて,耳コピしたりしなかったりして,組曲『ニコニコ神社』っぽく別の曲被せたり被せなかったりする予定.

 
あ,ニコニコ動画流星群10周年おめでとうございました!!!

 

 
正直メドレーの繋ぎが今回ボロボロで,投稿するまでにウンウン悩んで時間がかかりました.頭の中とかピアノで仮繋ぎしたときは,なわとび→Best Friend,Best Friend→ JBF,Dear→初恋終時,初恋終時→LOVE&JOYらへんは,めっちゃ良いつなぎ思いついた!!!!!!と思ってました.実際に打ち込んで見ると違和感アリアリで,テンポ揺らしまくったりとか色々と試行錯誤しました.ちょいちょい思ってたんですが,テンポが結構違う曲って繋ぎにくいなーと思います.アレンジでなんとかしちゃうが吉なのかな.
 

 
流星群をコピーしつつ打ち込みの勉強しようかとも思ったんですが,最初の楽器選ぶ時点で挫折しました.楽器適当の劣化コピーであることに萎えつつ流星群パート作ってこうと思います.
 

DailyMedley-20180323-12

 
使用曲リスト
secret base~君がくれたもの~
 
KiRa-KiRA Sensation!
StargazeR
Wind Climbing~風にあそばれて〜

 


 
中1日のメドレーです.
いつもはもう1曲くらい行くんですが,スタミナ切れたので,いつもより編集する楽器少ないくせに短めで上げました.泣きパ①ってことで.次くらいに抜ける予定.
 

 
前回bpm128で終わったんですが,ゆっくり過ぎてイライラしてくるので,bpm160で進行しようと思って変えちゃいました.
ラブライブ!大好きマンみたいな構成になってしまいました.secret base→スタダと,スタダ→僕光はずっと頭にあったのでつなげたら,せっかくなのでラブライブ!もう一つ重ねたくなってしまいました.ちゃんと考えて作るメドレーは,あんまり構成が偏らないやつがいいなーとか,ラブライブ!の曲がメドレーで出てきたときに「は?」コメ弾幕の文化なくなればいいなーとか思いつつ作ってました.
メロディがアウフタクトで入る曲が欲しくてStargazeRを,サマーウォーズの曲に繋がる曲として魔法陣グルグルを選曲しました. 
 
 

 
ピアノ出身のくせにピアノの動きのボキャブラリが少なくて萎えながら作ってました.ずっと同じ動きだとマンネリ化するので,ピアノのパターンをちょいちょい変えていますのつもり.ドラムとかアコギとか入れる気持ちではないので.
僕光→StargazerRでつなぐ時に,三連符から八分にどうしても移行したくて音切ったんですけど,やっぱどうしても違和感があるなーと思いました.でもsecret baseはちゃんと三連符でメロディ動かしたいじゃん,ね.
 

DailyMedley-20180322-11

 
使用曲リスト
Calc.
WORLD'S END UMBRELLA
東京サマーセッション
世界は恋に落ちている
secret base~君がくれたもの~

 


 
大サボりメドレー.12日ぶりらしいです.連続記録は10でストップ.
DailyMedley(デイリーとは言ってない)のナンバリングですが,めんどくさいので,今日は4月3日ですが,20180322のままいこうと思います.
メドレーはなんなら次の泣きパートまで行ってるんですが,打ち込みに時間がかかるマンなんですよこれ.
 

 
前回Calc.の後に泣きパ入るって言ったんですが,ちょっと不自然だと思ったし,ハニワから入ったほうがまだ自然だと思ったので,高校から温めておいたCalc.→WORLD'S END UMBRELLAで繋ぎました.
WORLD'S END UMBRELLA→東京サマーセッションの音同じ所は,DailyMedley作らずにうだうだしてたらひらめいた.
 

 
今回はベースの楽器変えたり,ピアノ入れてみたりとか,楽器構成の変わり幅が過去一でした.
Arpeggiaterで何やってるかわかんない音入れまくってごちゃごちゃになる病と,曲ごととかパートごとでの躁鬱病にかかってる.
一番時間がかかったのは,世界は恋に落ちているの前の水の音のエフェクト.ホントはもっと水感なくしたかったんだけども.
というか原曲とか恋に落ちる音入ってなかった?入ってた気がしたんだけども.10thメルトみたいな.とか思いつつ水滴音入れました.

DailyMedley-20180321-10

 
使用曲リスト
ハリケーンミキサー
irony
best day, best way
ヒトリゴト
アイヲウタエ
 
ダンスロボットダンス
Calc.

 


 
前倒しがなくなりました.3月21日分です.
お試しでSoundCloudのProを始めてみました.
 

 
本当はハリケーンミキサーの後にハピシンとかメランコ持ってくる予定だったのですが,ironyの方が合うなーと突然ひらめいてしまったので,つなぎを考えるのにだいぶ時間を食いました.
そろそろボンボンバスドラのリズムがマンネリ化してきて,泣きパート行ってもいいだろうと思って,ダンスロボットダンスから無理やりCalc.に持っていきました.
Calcの後に泣きパ入ろうと思ってます. 
 
 

 
ironyは,(一般曲のAメロBメロ間奏とはまたちょっと違う)一旦休憩のサビとして持ってきたんですが,盛り上がった後の打ち込みが難しいと思いました.パート減らし過ぎたら疎になるし,増やしすぎても休憩にならないので.とりあえずこの状態のものをアップロードしたんですが,自分ではちょっと納得してないです.今後の課題ですね.
あと,前回ボルテの直角音を使って逆再生したりしたんですが,「デュゥゥゥゥゥン!!!!」じゃなくて,「ヒュホォォォォォォゥゥゥゥゥゥゥ」みたいな音を会得したいと思ったのと,残響?を自由に弄れるようになりたいと思いました.今回はできなかったですが.