Chapter 08

KaggleへサブミットするCSVを作成する

(株)ディープブラック
(株)ディープブラック
2021.03.21に更新

Random Forestとcategory_encodersのロード

まずは、Random Forestとcategory_encodersを読み込みます。

######### pickleを読み込み #########
with open('models/clf_ohe.pkl', 'rb') as f:
	clf, ce_ohe = pickle.load(f)

テストデータの読み込み

テストデータを読み込み、訓練で用いた、特徴量を抜き出します。

data = pd.read_csv("titanic/test.csv")
id_lst = list(data["PassengerId"].values)
data = data[["Pclass", "Name", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked"]]

敬称とPclassの整理

######### データの前処理(名前の整理) #########
name_lst = list(data["Name"].values)

honorific_lst = list()
for i in range(0, len(name_lst)):
	honorific_lst.append(extract_honorific(name_lst[i]))

data["Honorific"] = honorific_lst

data = data.drop("Name", axis=1)

data["Pclass"] = data["Pclass"].replace({1:3,2:2,3:1})

######### データの前処理(category_encoders) #########
data = ce_ohe.transform(data)

data = data.fillna(data.mean())

Random Forestで予測 & sub.csvの作成

pred_lst = list(clf.predict(data.values))

sub_df = pd.DataFrame(np.array(id_lst+pred_lst).reshape(2, -1))
sub_df = sub_df.T
sub_df = sub_df.rename(columns={0: 'PassengerId', 1:"Survived"})
print(sub_df.head())
sub_df.to_csv("sub.csv", index=False)