# 実施手順

本課題の実施手順について説明します．

## 提出データ

* 推論結果のcsv（フォーマットは後述）
* csvを生成するソースコード（Nootbook）

## 提供データ

* Train.csv: 学習用のデータ
* Test.csv: 推論用のデータ
* Sample_submission.csv: 提出ファイルの例

## 具体的な手順について

## 1. ノートブックの作成

Codeタブで「+ New Notebook」をクリックすることで，Kaggle内にNotebook（Python実行環境）を作成することができます．

## 2. データの読み込み

コンテスト内でNotebookを作成すると最初のコードセルに提供データのパスを表示するコードが生成されます．
それを実行することで，ファイルパス（ファイルの置かれている場所）が分かります．
その情報を元に以下のように記述することで提供データを読み込むことができます．

```
import pandas as pd
train_data = pd.read_csv('/kaggle/input/dxi-ml-2025/Train.csv')
test_data = pd.read_csv('/kaggle/input/dxi-ml-2025/Test.csv')
sample_submission = pd.read_csv('/kaggle/input/dxi-ml-2025/Sample_submission.csv')
```

読み込んだデータフレームの中身を確認したい場合，下記のように書きます．

```
train_data.head(n=15)
```

## 3. 説明変数と目的変数の分離

学習用データを説明変数と目的変数に分離します．
以下のようなコードにより分離できます．
（説明変数から`'id'`を取り除いたほうが性能が上がることが予想されますが，ここではそれについては考慮していません）

```
X = train_data.drop(['MedHouseValue'], axis=1)
y = train_data['MedHouseValue']
```

## 4. モデルの学習

学習用データを使って，モデルを学習します．
ここでは線形モデルを使って学習します．（適宜他のモデルに変えてください）

```
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
```

## 5. テストデータを使った推論

テスト用データを使って，推論を行います．
以下のようなコードにより推論を行うことができます．

```
predictions = model.predict(test_data)
print(predictions)
```

## 6. 提出用csvファイルの生成

提出用csvにはサンプルの`'id'`と住宅価格（`'MedHouseValue'`）の予想結果の二つの列が必要です．
まず，そのような二つの列を持つデータフレームを作成したのち
それをcsvファイルとして保存します．
以下のようなコードによりsubmission.csvというcsvファイルを作ることができます．

```
results_df = pd.DataFrame({
    'id': test_data.id,
    'MedHouseValue': predictions
})

results_df.to_csv('submission.csv', index=False)
```

## 6. 開発したコードの保存と全実行

ノートブックを保存し，すべてのコードを実行しなおします．
右上の「Save Version」を押し，VERSION TYPEを「Save & Run All (Commit)」にした後，「Save」をクリックします．
左下に実行の進捗が表示されますので，実行完了まで待ち，Successfulと表示されることを確認してください．
（Failedと表示される場合は，正しく実行できていません）

## 7. Kaggleへの提出とスコア（平均二乗誤差）の取得

開発したノートブックを提出し，スコア（平均二乗誤差）を得ます．
右側の「Notebook」中段にある「Submit to competition」にある「Submit」ボタンをクリックし，次の画面でもう一回「Submit」ボタンをクリックしてください．
スコアが計算されますので，それを確認してください．
