野菜価格に影響する要因を探り当てよう!
keisukenakata0316
実行環境はGoogle Colab※注意:90分間操作がないとセッションタイムアウト※注意:12時間経過で強制タイムアウトファイルの入出力はGoogleドライブ
チュートリアル(Lasso回帰)をベースにしています。パラメータチューニングした結果、チュートリアルからスコアがわずかに悪くなりました。(0.27548→0.27549)
# Googleドライブ上のCSVを参照するため from google.colab import drive drive.mount('/content/drive')
# ライブラリのインポート import pandas as pd import numpy as np import sklearn from sklearn.linear_model import Lasso from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_log_error import matplotlib
# 学習用データの読み込み(パスは各自に合わせて変更必要) train_data = pd.read_csv('drive/My Drive/Colab Notebooks/train_data.csv', index_col='id')
# 天気データの読み込み(パスは各自に合わせて変更必要) weather = pd.read_csv('drive/My Drive/Colab Notebooks/weather.csv', index_col=0, header=[0,1,2])
# 学習用のXとy X = weather.iloc[11:-1, :].fillna(0) y = train_data
# ここで特徴量エンジニアリング用の関数を作成するといいのかもしれない
""" ここが時間かかる部分(約32分) 線形回帰モデルのインスタンス化 パラメータ:alpha:複雑さの度合い。デフォルト1.0 小さくしすぎると過剰適合してしまう。 パラメータ:max_iter:学習の反復回数。 """ Lasso = Lasso(alpha = 0.01,max_iter=100000) lr = LinearRegression() # 予測モデルの作成 Lasso.fit(X, y) lr.fit(X, y)
# テスト用のX test_data = weather.iloc[-1:, :].fillna(0)
# テスト結果の出力 test_predicted = lr.predict(test_data) submit_df = pd.DataFrame(test_predicted) submit_df.columns = train_data.columns submit_df = submit_df.transpose() submit_df.index.name = 'id' submit_df.columns = ['y'] # 提出用CSVファイルの出力先(パスは各自に合わせて変更必要。既存の同名ファイルは上書き) submit_df.to_csv('drive/My Drive/Colab Notebooks/submission.csv')