데이터 다운로드
#데이터 다운로드 링크로 데이터를 코랩에 불러옵니다.
!wget 'https://bit.ly/3gLj0Q6'
import zipfile
with zipfile.ZipFile('3gLj0Q6',⸱'r') as existing_zip:
existing_zip.extractall('data')
라이브러리 불러오기
# Pandas 와 Scikit-learn 라이브러리를 불러오세요
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
데이터 불러오기
# train.csv 와 test.csv 를 DataFrame 클래스로 불러오세요
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
데이터 정보 관찰하기
# head() 를 사용해 데이터 정보를 관찰하세요
train.head()
test.head()
데이터 행열 개수 관찰
# shape 를 사용해 데이터 크기를 관찰하세요
train.shape
test.shape
(715, 10)
결측치 확인
# info() 를 사용해 결측치가 있는지 확인하세요.
train.info()
test.info()
결측치 전처리
# dropna() 를 사용해 train 데이터는 결측치를 제거하고
# fillna() 를 사용해 test 데이터 결측치는 0 으로 대체하세요.
# 그리고 결측치의 갯수를 출력하여 확안하세요.
train = train.dropna()
test = test.fillna(0)
print(train.isnull().sum())
id 0 hour 0 hour_bef_temperature 0 hour_bef_precipitation 0 hour_bef_windspeed 0 hour_bef_humidity 0 hour_bef_visibility 0 hour_bef_ozone 0 hour_bef_pm10 0 hour_bef_pm2.5 0 count 0 dtype: int64
모델 훈련
# train 데이터의 count 피쳐를 뺀 것을 X_train 으로 할당하세요.
# train 데이터의 count 피쳐만을 가진 것을 Y_train 으로 할당하세요.
# 회귀의사결정나무를 선언하고 fit() 으로 훈련시키세요.
X_train = train.drop(['count'], axis=1)
Y_train = train['count']
model = DecisionTreeRegressor()
model.fit(X_train, Y_train)
DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort='deprecated', random_state=None, splitter='best')
테스트 파일 예측
# predict() 을 이용해 test data 를 훈련한 모델로 예측한 data array 를 생성하세요.
pred = model.predict(test)
submission 파일 생성
# submission.csv 를 불러오세요.
# submission df 의 count 피쳐에 예측한 결과를 덧입히세요.
# submission df 를 to_csv() 를 이용해 csv 을 생성하세요. *index=False)
submission = pd.read_csv('data/submission.csv')
submission['count'] = pred
submission.to_csv('sub.csv',index=False)
'데이콘 #오늘의 파이썬 #1일1오파' 카테고리의 다른 글
Lv4. 교차검증과 모델 앙상블을 활용한 와인 품질 분류하기 (0) | 2021.11.23 |
---|---|
Lv2. 결측치 보간법과 랜덤포레스트로 따릉이 데이터 예측하기 (0) | 2021.11.05 |