[Kaggle learn] Intro to Machine Learning 완료

JI YEON KIM·2024년 5월 12일

자습 및 특강 노트

목록 보기
2/4

완성본 코드

import os
if not os.path.exists("../input/train.csv"):
    os.symlink("../input/home-data-for-ml-course/train.csv", "../input/train.csv")  
    os.symlink("../input/home-data-for-ml-course/test.csv", "../input/test.csv") 

import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import train_test_split

iowa_file_path = '../input/train.csv'
home_data = pd.read_csv(iowa_file_path)

y = home_data.SalePrice
features = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']
X = home_data[features]
X.head()

rf_model_on_full_data = RandomForestRegressor()
rf_model_on_full_data.fit(X,y)

test_data_path = '../input/test.csv'
test_data = pd.read_csv(test_data_path)
test_X = test_data[features]

rf_model_on_full_data.predict(test_X)
output = pd.DataFrame({'Id': test_data.Id,
                       'SalePrice': test_preds})
output.to_csv('submission.csv', index=False)

순서는 다음과 같았음

1 모델 작동 방식

코드 구현은 없었고, 작동 원리에 대한 이해를 하는 과정

2 기본 데이터 탐색

import os
if not os.path.exists("../input/train.csv"):
    os.symlink("../input/home-data-for-ml-course/train.csv", "../input/train.csv")  
    os.symlink("../input/home-data-for-ml-course/test.csv", "../input/test.csv") 

import pandas as pd

iowa_file_path = '../input/train.csv'
home_data = pd.read_csv(iowa_file_path)

이거 하려고 그렇게 파이썬에서 자료 땡겨오는 걸 배웠구나~
os.path.exists가 존재하지 않으면 심볼릭 링크(유닉스 기반 시스템에서 파일이나 폴더를 가리키는 단축 경로)를 생성하는 코드.
os.symlink(source, destination)을 통해 원본 파일 위치에서 필요한 위치로 심볼릭 링크를 생성한다. 이렇게 하면 데이터 파일에 접근할 때 원본 파일 위치 대신 설정한 링크를 통해 접근할 수 있어, 파일 경로 관리가 편리하다고 함!

3 첫 번째 머신 러닝 모델 구축

y = home_data.SalePrice
features = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']
X = home_data[features]

y 는 타깃변수, x는 사용할 특성들을 선택한 행렬이다.
훈련 준비 단계라고 생각

4 모델 검증

from sklearn.model_selection import train_test_split
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1)
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
rf_model = RandomForestRegressor()
rf_model.fit(train_X, train_y)
val_predictions = rf_model.predict(val_X)
val_mae = mean_absolute_error(val_predictions, val_y)

데이터를 훈련 및 검증 세트로 분할하고, 랜덤 포레스트 회귀 모델을 정의하고 훈련시킨 후, 검증 데이터에 대해 예측을 수행, 오류를 측정한 단계임

rf_model.fit(train_X, train_y)  # 모델을 훈련 세트에 학습시킴
val_predictions = rf_model.predict(val_X)  # 검증 세트에 대한 예측을 수행
val_mae = mean_absolute_error(val_predictions, val_y)
#Validation MAE for Random Forest Model: 21,857

5 과소 피팅 및 과대 피팅
6 랜덤 포레스트

rf_model_on_full_data = RandomForestRegressor(random_state=1)
rf_model_on_full_data.fit(X, y)  # 전체 훈련 데이터로 모델을 학습
test_data_path = '../input/test.csv'
test_data = pd.read_csv(test_data_path)
test_X = test_data[features]  # 테스트 데이터에서 특성을 선택
test_preds = rf_model_on_full_data.predict(test_X)  # 테스트 데이터에 대한 예측을 수행
output = pd.DataFrame({'Id': test_data.Id, 'SalePrice': test_preds})
output.to_csv('submission.csv', index=False)
# 예측 결과 파일이 'submission.csv'로 저장. 각 Id에 대한 예측된 SalePrice가 포함

7 머신 러닝 경연 대회 (제출)

profile
안녕하세요. 김지연입니다.

0개의 댓글