https://dacon.io/competitions/open/235698/overview/description
▶ [ Lv.1 의사결정회귀나무로 따릉이 데이터 예측하기 ] 를 공부했습니다.
▶ EDA _ 탐색적 자료 분석
1. 라이브러리, 파일 불러오기
데이터분석을 하기 위해 pandas 라이브러리와 파일을 불러오기
import pandas as pd
train = pd.read_csv('C:/data/train.csv')
test = pd.read_csv('C:/data/test.csv')
2. 행, 열 개수 관찰하기
shape를 이용해 train, test의 행/열 개수 파악
train.shape
# 행 1459개, 열 11개
test.shape
# 행 715개, 열 10개
3. 데이터 확인하기
head() 메서드를 이용해 데이터의 상단부분 확인
( 하단 부분을 확인하고 싶다면 tail() 메서드 이용하기! )
train.head(10)
test.head(10)
다음과 같이 확인이 된다.
4. 결측치 확인하기
isnull() 메서드를 사용해 train과 test의 NAN를 확인
print(train.isnull()) # 데이터의 결측치 여부 확인
train.isnull().sum() # 데이터의 열별 결측치 수 확인
print(test.isnull())
test.isnull().sum()
▶ 전처리
1. 데이터의 기본 정보 확인하기
column, 결측치, 데이터 타입 등을 확인
train.info()
test.info()
2. 결측치 삭제, 대체
dropna() - 결측치를 갖는 행을 DataFrame 객체에서 삭제
fillna() - 모든 결측치를 인자값으로 대체
train = train.dropna()
test = test.fillna(0)
print(train.isnull().sum())
print(test.isnull().sum())
train은 dropna()를 이용해서 결측치 갖는 행을 삭제 했고 test는 fillna()를 이용해 모든 결측치를 0으로 대체했다.
train, test의 열별 결측치를 다시 확인해보니 제대로 적용 된 것이 보인다.
▶ 모델링
※ 의사결정나무란?
- 어느 대안이 선택될 것인가라는 것과 일어날 수 있는 불확실한 상황 중에서 어떤 것이 실현되는가라는 것에 의해 여러 결과가 생긴다는 상황을 나뭇가지와 같은 모양으로 도식화한 것
- 결론에 도달할 때까지 연속적인 '예/아니오' 질문들을 반복해 최종 의사결정을 하는 방법
- 각 변수에 따라 어떤 확률을 가지는지 확인 가능
1. 의사결정나무 모델 선언
sklearn.tree에서 DecisionTreeRegressor 모듈 불러오기
from sklearn.tree import DecisionTreeRegressor
model = DecisionTreeRegressor()
2. 의사결정나무 모델 훈련
모델을 선언한 후, fit(X, Y) 함수를 사용해 모델 훈련시키기
X 데이터 - 예측에 사용되는 변수
Y 데이터 - 예측 결과 변수
X_train = train.drop(['count'], axis=1)
Y_train = train['count']
model = DecisionTreeRegressor()
model.fit(X_train, Y_train)
3. 테스트 예측
훈련된 모델로 test 파일을 예측해보기
pred = model.predict(test)
4. 저장하기
submission = pd.read_csv('C:/data/submission.csv')
submission['count'] = pred
submission.to_csv('sub.csv',index = False)
이렇게 저장하면 된다!
'Python > 데이터분석 실습' 카테고리의 다른 글
[Kaggle ] Pima Indians Diabetes 예측 ② 데이터 전처리 후 모델 학습/예측 (0) | 2022.03.01 |
---|---|
[Kaggle] Pima Indians Diabetes 예측 ① EDA, 시각화 탐색 (0) | 2022.02.28 |
[Python] 국가(대륙)별/상품군별 온라인쇼핑 해외직접판매액 데이터 분석 (0) | 2022.02.04 |
[Python] 서울 종합병원 분포 데이터 분석 (0) | 2022.02.04 |
[DACON_101] Lv.2 결측치 보간법과 랜덤포레스트로 따릉이 데이터 예측하기 (0) | 2022.02.02 |