Kaggle House Prices ③ ~ 예측·제출 ~

아래에서 작성한 모델을 사용하여 테스트 데이터를 예측하고 submission 파일을 제출합니다.
Kaggle House Prices ② ~ 모델 작성 ~

라이브러리 로드


import numpy as np
from sklearn.externals import joblib

데이터 로드


def load_x_test() -> pd.DataFrame:
    """事前に作成したテストデータの特徴量を読み込む

    :return: テストデータの特徴量
    """
    return joblib.load('test_x.pkl')

def load_model(i_fold):
    """事前に作成したモデルを読み込む

    :return: 対象foldのモデル
    """
    return joblib.load(f'model-{i_fold}.pkl')

def load_pred_test():
    """事前に作成したテストデータの予測結果を読み込む

    :return: テストデータの予測結果
    """
    return joblib.load('pred-test.pkl')

테스트 데이터 예측 수행


# クロスバリデーションで学習した各foldのモデルの平均により、テストデータの予測を行う
test_x = load_x_test()
preds = []
n_fold = 4

# 各foldのモデルで予測を行う
for i_fold in range(n_fold):
    print(f'start prediction fold:{i_fold}')
    model = load_model(i_fold)
    pred = model.predict(test_x)
    preds.append(pred)
    print(f'end prediction fold:{i_fold}')

# 予測の平均値を取得する
pred_avg = np.mean(preds, axis=0)

# 予測結果の保存
joblib.dump(pred_avg, 'pred-test.pkl')

제출용 submission 파일 작성


pred = load_pred_test()
print(len(pred))
print(load_x_test())
submission = pd.DataFrame(pd.read_csv('test.csv')['Id'])
submission['SalePrice'] = np.exp(pred)
submission.to_csv(
    'submission.csv',
    index=False
)

제출 결과



좋은 웹페이지 즐겨찾기