# データサイエンス研究部 - 0618
- tutorial
- とりあえず動くサンプルコードというものがある
- [titanic tutorial](https://www.kaggle.com/alexisbcook/titanic-tutorial)
- gender_submission.csvの形式にして提出する必要がある
- passengerIdの人がSurvivedかどうかを提出する
- その人が生きてるか死んでるかを当てる
- 0/1の分類問題
- 求めるものに対して使うものが変わる
- 回帰分析は数値を出したいときに使う
- 今回は分類問題になる
---
- tutorialをより良くしていく
- 初期値は`0.777511`
- 前処理か、中身を良くしていく
- 手法を変えるか、数字をいじってやると良い
- 提出上限がある
---
- titanicコンペをいい感じに頑張った
- tutorialを改善していった
---
- 次回は初心者向けコンペから何か参加してみる
- 学習するのが目的なので、playgroundかgetting-startedのコンペをやる予定
書いたコード
```python
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
# CSVのインポート
train_data = pd.read_csv("./train.csv")
train_data.head()
test_data = pd.read_csv("./test.csv")
test_data.head()
# rateの算出
women = train_data.loc[train_data.Sex == 'female']["Survived"]
rate_women = sum(women)/len(women)
print("% of women who survived:", rate_women)
men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men)/len(men)
print("% of men who survived:", rate_men)
# y, xの
y = train_data["Survived"]
features = ["Pclass", "Sex", "SibSp", "Parch"]
X = pd.get_dummies(train_data[features])
X_test = pd.get_dummies(test_data[features])
# アンサンブル学習(RandomForest, GradientBoostingClassifier, lightGBM)
from sklearn.ensemble import RandomForestClassifier
import lightgbm as lgb
from sklearn.ensemble import GradientBoostingClassifier
model_1 = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
params = {
"random_state": 42
}
model_2 = lgb.LGBMClassifier(**params)
model_3 = GradientBoostingClassifier(n_estimators=100, max_depth=5, random_state=1, learning_rate=.01)
# モデルの学習
model_1.fit(X, y)
model_2.fit(X, y)
model_3.fit(X, y)
pred_1 = model_1.predict(X_test)
pred_2 = model_2.predict(X_test)
pred_3 = model_3.predict(X_test)
#
prediction = 0.3 * pred_1
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': prediction})
output.to_csv('my_submission.csv', index=False)
print("Your submission was successfully saved!")
```