kookmin-sw / 2019-cap1-2019_4

Flex Ads to implement advertising system in offline market
MIT License
10 stars 7 forks source link

XGBoost 구현하면서 발생하는 문제점과 해결방법 #3

Closed Jisoo-Min closed 5 years ago

Jisoo-Min commented 5 years ago

XGboost알고리즘 사용하면서 발생하는 문제점과 해결방법 공유

Jisoo-Min commented 5 years ago

IndexError : tuple index out of range -> 인풋에 들어갈 array의 형태가 안맞아서 생기는 문제 해결하기

aaa0265 commented 5 years ago

model을 만들기 위한 과정 중 fit()에 들어가야하는 파라미터는 input과 output이다.
여기서 input과 output의 형태가 중요

  1. 오류가 났던 data type은 series(1차원 리스트 형태) : 몇 개의 데이터가 한 개로 묶이는지 알 수 없다. 1 2

  2. data type을 DataFrame으로 만들어준다. : 데이터가 한 개씩 확실히 구분. 3 4

  3. 오류없이 돌아가는 것을 확인 5

aaa0265 commented 5 years ago

<문제점>

  1. xgb.XGBClassifier().fit() 와 xgb.train() 의 속도차이가 존재한다. 어떤 것을 쓸 것인지 생각할 필요가 있음.

  2. prior set에 order과 product를 합친 테이블을 파라미터로 넣고 model을 만들기 시작하면 테이블 크기가 너무 커서 dead kernel이 됨.

  3. 모델을 만들고 그 모델에 2개의 feature만(사용자 id, 상품 id)가진 table을 넣고 예측을 하려고 했지만 모델을 만들때 넣었던 table의 feature 수와 동일해야한다는 문제점이 생김.

aaa0265 commented 5 years ago
  1. ec2 환경에서 xgboost 설치 과정에 문제가 발생 xgboost
aaa0265 commented 5 years ago

EC2 환경에서 xgboost를 설치하는 방법

  1. git clone https://github.com/dmlc/xgboost.git
  2. 1번 완료 후 아래 사진과 같이 진행한다. install xgboost
aaa0265 commented 5 years ago

boosting tree를 시각화하려고 아래코드를 작성하니 그림이 작고 깨짐

plot_tree(model)
pyplot.show()

image

aaa0265 commented 5 years ago
plot_tree(model)

fig = pyplot.gcf()
fig.set_size_inches(20,20)
pyplot.show()

위 코드를 작성하니 사이즈가 조절되면서 트리가 깨지지 않음 image