
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 머신 러닝 경연 대회 (제출)