kaggle忘備録

kaggle参加の忘備録です
初心者の方がどのコンペに参加しようかと迷っている際の参考になれば

Weekly kaggle News登録しました

2020-10-18 08:17:21 | Real or Not? NLP with Disaster Tweets

参考 https://upura.hatenablog.com/entry/2020/07/31/223000

Weekly kaggle News登録しました

https://www.getrevue.co/profile/upura

闇雲にコンペに登録をしていても要領が得られないので

登録。明日から新たに一つコンペが始まるようです

名刺管理サービスを展開するSansan株式会社のデータを用いる「Sansan × atmaCup #6」コンペが10月19〜31日に開催されます。応募期間は10月4日までで、抽選で100人程度が参加できるとのことです。

kaggle listも情報が取れるそうですが

とりあえずTwitterのアカウントを作ってKaggleのアカウントをフォローした

 


NLP With Disaster Tweets Prediction - BERT

2020-10-10 13:59:02 | Real or Not? NLP with Disaster Tweets

今のところ一番gpuが高かったです

ファイルを読み込み欠損値を確認

まずツイートの分類を確認しています

そしてキーワードと投稿地について確認

不必要な列と判断。行列から削除しています

このあとはテキストの補正を行なっています。

ツイートのいくつかが繰り返し投稿されており誤分類されているため

文字列補正を行なっています

こうした繰り返し文字列の削除です

id text target
5641 8044 wowo--=== 12000 Nigerian refugees repatriated ... 0
5620 8018 wowo--=== 12000 Nigerian refugees repatriated ... 1
6091 8698 that horrible sinking feeling when you‰Ûªve be... 1
6123 8739 that horrible sinking feeling when you‰Ûªve be...

1

繰り返されるツイートについてフラグを立てることに

id text target target_new
5641 8044 wowo--=== 12000 Nigerian refugees repatriated ... 0 1
5620 8018 wowo--=== 12000 Nigerian refugees repatriated ... 1 1
6091 8698 that horrible sinking feeling when you‰Ûªve be... 1 0
6123 8739 that horrible sinking feeling when you‰Ûªve be... 1 0
6103 8714 that horrible sinking feeling when you‰Ûªve be... 0 0
6094 8702 that horrible sinking feeling when you‰Ûªve be... 0

0

解析前にツイートの前処理を行います

以下の項目は不要なので削除します

  1. URL
  2. HTML tags
  3. Emojis
  4. Special characters
  5. Non-ASCII characters
  6. Expand contractions
  7. Specific corrections
  8. Other context specific corrections
  9. Abbreviations

他にも略字、スペルミスも補正します

繰り返しツイートは一つに一を立て、残りにゼロを立てます

id text target target_new
4762 6775 World War II book LIGHTNING JOE An Autobiograp... 0 0
4770 6788 World War II book LIGHTNING JOE An Autobiograp... 1 0
248 353 World Annihilation vs Self Transformation Alie... 0 0
269 390 World Annihilation vs Self Transformation Alie... 1 0
2253 3227 Why are you deluged with low self - image ? Ta... 0 0
2250 3221 Why are you deluged with low self - image ? Ta... 1 0
5180 7392 Watch Sarah Palin OBLITERATE Planned Parenthoo... 0 0

ストップワードを削除します

  1. Remove unwanted words
  2. Remove punctuations
  3. Remove stopwords
  4. Stemming words

Tweetの文字数 単語数を比較します

ツイートの文字数 災害メールの方が長いことが分かります

意味のある単語の長さ

災害ツイートとそうでないツイートの差が見えてきます

よく出てくる単語について比較します

1単語での比較

非災害ツイートは like,get,new,u wouldなどが多く

災害ツイートは1fire news year californiaなどが多いです

2単語での比較

非災害ツイート

body bag

cros body 

youtube video

liked youtube

災害ツイート

malasia airline

flight 370 

airline fright

3単語で比較します

非災害ツイート

liked youtube video 

cross body bag

災害ツイート

malasia airline flight

airline flight 370

モデル化を行います

 

 


Basic EDA,Cleaning and GloVe

2020-10-10 11:16:36 | Real or Not? NLP with Disaster Tweets

In this competition, you’re challenged to build a machine learning model that predicts which Tweets are about real disasters and which one’s aren’t.

この競争では、あなたは、どのツイートが本当の災害についてであるか、そして、どちらがそうであるか予測するモデルがそうでないということを知っているモデルを作るよう要求されます。

まずはファイルを読み込んでいます

train.csv

idとkeyWord,location,text 欠損値も多いです

5列あるものが7613行

4列あるものが3263行あります

id keyword location text target
1     Our Deeds are the Reason of this #earthquake May ALLAH Forgive us all 1
4     Forest fire near La Ronge Sask. Canada 1
5     All residents asked to 'shelter in place' are being notified by officers. No other evacuation or shelter in place orders are expected 1
6     13,000 people receive #wildfires evacuation orders in California  1
7     Just got sent this photo from Ruby #Alaska as smoke from #wildfires pours into a school  1
8     #RockyFire Update => California Hwy. 20 closed in both directions due to Lake County fire - #CAfire #wildfires

1

 

test.csv

id keyword location text
0     Just happened a terrible car crash
2     Heard about #earthquake is different cities, stay safe everyone.
3     there is a forest fire at spot pond, geese are fleeing across the street, I cannot save them all
9     Apocalypse lighting. #Spokane #wildfires
11     Typhoon Soudelor kills 28 in China and Taiwan
12    

We're shaking...It's an earthquake

 

train.csvの一番右端にtargetという列があるのですが、まずはその数を比較してみます

textの内容から考えるに、0が災害ツイートではない、1が災害ツイートであると考えられます

文字数から差がでるかどうか調べてみます

グラフ出力 左側が災害ツイート。右側が災害ツイートでない文字数分散となります

どちらも120文字にピークがあります。単純に文字数で差を出すのは難しそうです

では単語数で比較をしてみたらどうでしょうか?

ツイートを単語ごとに分割し出力をしてみます

→1ツイートにいくつ単語が含まれているかどうか調べてみる

ツイートの平均単語数を調べてみます

Tweetのストップワードについて、調べてみます

共通傾向としてはtheが多く、次は a , 非災害ツイートはin

非災害ツイート the,a, to,and ,of,in,you,is,for,my

災害ツイート the, in ,of ,a,to,and,on,for,is ,at 

場所を特定するような単語 atが多いのは何となく分かります

次に句読点について解析をします

非災害ツイート

災害ツイート

一般的な単語の傾向についても調べておきます

単語を整理する必要があることが分かります

単語の一般的なダイアグラムをチェックします

2単語ごとのつながりの数を計算します

クリーニングが必要です

訂正、句読点、除去HTMLタグと絵文字を取り出し削除します

つづりの修正をPythonの標準関数で行います

ベクトル化を行います

ここではコーパス・モデルを使います。
それは、3つの種類で利用できます:50D、100Dと200のDimentional。
我々は、100Dを使用します

モデル化を行います

 


災害時のツイートを解析しよう

2020-10-10 10:18:17 | Real or Not? NLP with Disaster Tweets

Real or Not? NLP with Disaster Tweets

どのツイートが実際の災害に関するもので、どのツイートがそうでないか予測します。

機械学習の入門的コンペ。賞金はない

Titanicの次になんとなく面白そうだなと思い挑戦。

まずは賢者の皆さんが作成したNotebooksを参照して勉強

人気のNoteBookから選択 精度としてはこんな感じ

選択NoteBook

各NoteBookについて 簡単なコメント

Basic EDA,Cleaning and GloVe 0.77658

人気としては一番高かったが精度としてはイマイチ。これからみなさん追加をしていくよう

Real or Not? NLP with Twitter Disaster Tweets 0.7916

更新としては新しかったので参考に

NLP With Disaster Tweets Prediction - BERT 0.84063

結果としてはこれが一番精度が高かった。


はじめまして

2020-10-10 10:09:12 | 統計学的雑談

kaggleに挑戦しています。

なんだそれ? となってしまった人はまず本を一冊買ってゆっくり読んでみると良いと思います。

簡単にいえば、kaggleとは世界中的な統計学、機械学習のコンペです

 

コンペに参加して勉強していくのは勿論なのですが

自分で解析勉強した内容を

今後のためも含め 忘備録として書いていこうと思います。

ある程度勉強をし、実際にkaggleに挑戦している人を対象に書いています。

 

https://ja.wikipedia.org/wiki/Kaggle

https://www.kaggle.com

Kaggle企業研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。 モデル作成にクラウドソーシング手法が採用される理由としては、いかなる予測モデリング課題には無数の戦略が適用可能であり、どの分析手法が最も効果的であるか事前に把握することは不可能であることに拠る。 2017年3月8日、GoogleはKaggle社を買収すると発表した。

競技プログラミング。

 

いいところだけ話すと

在宅勤務で賞金がゲット!

が可能になる

 

とはいえちまたに溢れている「在宅ワーク」とは大きく意味が違う

一般人が挑戦しても??? だけで終わる

ニートが一念発起して何とかなるかというと

大学卒業程度の数学の知識がないとまず意味が分からない

 

学生時代に統計学を勉強していたこともあり、

現役のエンジニアであるわたしは

少し勉強すればわたしも何とかなるのではないかとは思った。

が、しかし、週に1〜2回勉強をしてもさっぱり分からない状態が続いた。

 

このままでは毎日少しずつでも進まないと いつまで経っても「やりたいと思っていた」で終わってしまう。

コロナ下で通勤がなくなったこともあり、

その時間をkaggleを勉強する時間にあてることにした

 

学生時代に学んだことなど何十年も経ってしまえば役に立たない

いつまでも役に立つのはその時学んだ方法、知識の使い方。

 

まずはメダル取得、賞金獲得 

楽しみながら 2年ぐらいで達成できたらと思っています