# データサイエンス研究部 - 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!") ```