自分でタイタニックのチュートリアルを解く(4)
早速勉強をサボってしまった。
最近具合が悪いというのがいいわけ。
いま規約みたら、私的にコードやデータを共有しては行けないとあった。
フォーラム内の人間が見れるのであれば別に構わないがと。
別にアクセス制限してないから構わない方にはいるのだろうか。
人来ないし大丈夫だけど、なんか言われたら考える。
とりあえず、ひとまずデータを見やすく整形して行く必要がありそう。
今日は全然できてないが、下記の本でも参考にしてみようかしら。
Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/12/26
- メディア: 大型本
- この商品を含むブログ (11件) を見る
自分でタイタニックのチュートリアルを解く(3)
趣味でやってる合気道、そして友人との飲み会の合間に調べ調べ実装してみました。
import matplotlib.pyplot as plt import numpy as np from numpy.random import * #解析データづくり x_true = rand(100,1) * 100 - 0 y_true = rand(100,1) * 100 - 0 t_true = np.ones((100,1)) x_false = rand(100,1) * 100 - 100 y_false = rand(100,1) * 100 - 100 t_false = -np.ones((100,1)) data_true = np.c_[x_true,y_true,t_true] data_false = np.c_[x_false,y_false,t_false]
とりあえず、これで解析しやすそうな判別データを作成。
ちなみに描画してみるとこんな感じ
これで解析すべきデータはできた。
あとはこれを2分する直線を書いてみる。
%matplotlib inline import matplotlib.pyplot as plt import numpy as np import csv from numpy.random import * def f(x,y,w0,w1,w2): return w0 + w1*x + w2*y # Import Data with open('data.csv', 'r') as d: reader = csv.reader(d) data = list(reader) # 初期値 w0 = 100.0 w1 = -1.0 w2 = 1.0 x_true=[] y_true=[] x_false=[] y_false=[] # main for itr in range(0,10): for i in range(0,len(data)): x = float(data[i][0]) y = float(data[i][1]) t = float(data[i][2]) if f(x,y,w0,w1,w2)*t > 0: continue else: print("false") w0 = w0 + t w1 = w1 + t*x w2 = w2 + t*y print(w0,w1,w2) print(w1/w2,w0/w2) x = np.linspace(-100,100,201) y = -(w1/w2)*x - (w0/w2) plt.plot(x,y,"r-") for i in range (0,len(data)): if int(data[i][2]) > 0: x_true.append(float(data[i][0])) y_true.append(float(data[i][1])) else: x_false.append(float(data[i][0])) y_false.append(float(data[i][1])) plt.scatter(x_true,y_true,color='b',marker='x') plt.scatter(x_false,y_false,color='r',marker='x') plt.show() plt.close()
直線をあわせてプロットするとこんな感じ
恥を忍んでダメダメコードを公開してみた。
自分でタイタニックのチュートリアルを解く(2)
さて、自分で解くとは言ったものの。
どうしたら良いのだろう。
どこから手をつけていいかわからない。
ランダムフォレストってなんやねん。
とりあえず、難しいことはおいておいて。
まずは、男女で生き残ったかどうかを考えてみるのがよいのかしら。
男女 and 年齢とかで分析してみるのもよいのかしらとか考えてた。
しかし、そもそもどうやって、生死を分類するのかしらという疑問が。
ということで調べたら分類器というのがあるみたい。
その中で最も基本的なものがパーセプトロンというもののようだ。
自分で実装してみようと思う。
過去の経験から、まずは単純なところから手を出さないと挫折するからね。
自分でタイタニックのチュートリアルを解く(1)
Kaggleのタイタニックのチュートリアルにサンプルコードぶち込むことで、流れ自体を掴んだ。いよいよ次は自分の能力を試す時だ!
なお、現在の自分のスペック
--------------------------------------
Python力: Lv1 (Hello World)
Mac力: Lv2 (Terminalは動かせるよ,cd,ls,pwd,くらいは知ってるよ)
英語力: Lv2 (I'm fine, thank you.)
--------------------------------------
この圧倒的低スペック...。
先が思いやられる。
初kaggle
kaggleというサイトがある。kaggleとは何かは、まだ使い始めて2日目の自分にはきちんと説明できない。今のところ「与えられたデータを解析して、何らかの結果を予想。それがいかに優れているかを競う場所」といったイメージをもっている。
ともかく面白いという話を聞きつけて、現実逃避の一環で挑戦することにしてみた。
kaggle界におけるHello world的存在が、タイタニックのチュートリアルだときいたので、試しにやってみることにした。
...まず英語が読めない
いったい、何が求められているんだ...。俺に何をしろっていうんだ。
英語ググりまくりでなんとか読んだところ
1. 乗客のデータはくれてやる
2. どんな人達が生き残りやすかったか分析して見るんだな!
ということみたいだ。なるほど。
Get the Dataとかいうところでデータは取ってこれた。
サンプルコードもあるみたいだ。
実行!!!
自分の開発python3でした...。
まだまだ先は長い。
人生初ブログ
いままで、やろうかどうしようかふらふらしていたブログですが
ついに手をだすことにしました。備忘録的に使うことが増えそうです。