본문 바로가기
코딩/Machine Learning

21. 데이터 준비(1)

by 세자책봉 2021. 3. 21.
728x90

Luca Massaron, Alberto Boschetti 저, '파이썬으로 풀어보는 회귀분석', 2019.01.02

내 맘대로 요약 공부 중(문제시 비공개 및 삭제)

저작권에 굉장히 민감한 책이므로 일반적인 내용들만 요약

최초 작성일 2021.3.21

 

1. GIGO(Garbage In Garbage Out)
  • 숫자를 적정하게 조정하여 비정상적 값 혹은 누락된 값에 대한 처리를 할 수 있어야 함
  • 회귀 모델에 맞도록 정성적 특징을 정량적으로 바꿀 수 있어야 함
  • 비선형 관계의 데이터를 선형적으로 표현할 수 있어야 함(사실상 가장 어려운 작업)
  • 중요한 데이터가 누락된 경우, 예측 혹은 회귀로 관리할 수 있어야 함
  • 비정상적인 데이터를 복구하여 회귀 모델을 정상적으로 작동할 수 있어야 함
2. 숫자 특성 조정
  • 일반적으로 변수의 값들을 유사한 스케일로 조정할 경우 모델의 성능이 향상 됨_스케일 조정

boston data 불러오기

  • Scikit-learn 패키지의 preprocessing 모듈 → StandardScaler, MinMaxScaler, 더 많은 정보는 여기
함 수 명 내 용
StandardScaler 표준화
재조정된 값은 모두 평균 0을 갖는 분산값으로 변경 됨
MinMaxScaler 정규화
재조정된 값은 0~1 사이의 분산값으로 변경 됨

① 선형 회귀 결과

② 선형 회귀 결과_표준화

③ 선형 회귀 결과_정규화

  • 일반적으로 희소 행렬은 0이 아닌 데이터만 저장하는데, 표준화의 경우 평균을 0으로 설정하기 때문에 희소 행렬의 데이터가 훨씬 더 커지므로, 정규화를 하는게 더 낫다
3. 로지스틱회귀 예시
  • 로지스틱회귀에서는 응답확률의 오즈비(odds ratio)로 모델링 함(일반적인 선형회귀에서와는 다름)

  • 선형회귀와는 달리 로지스틱회귀에서 예측변수의 단위 변화는 오즈비를 변화시킴

  • 오즈비가 1일 때, 확률은 0.5 / 확률이 0.5보다 크면 오즈비 ≥ 1 / 확률이 0.5보다 작으면 오즈비 ≤ 1
4. 정성적 특성 변환
  • 일반적으로 정성적 정보를 숫자로 변환하여 사용, 변환된 변수를 지시 변수(Indicator)라고 함
  • 통계에서는 더미 변수(Dummy) 라고도 함

① 이진 변수 변환(0 또는 1)

  • 일반적으로 이진 변수 혹은 이분 변수라고 불리는 0, 1로 변환 함
  • 데이터 특성에 따라 달라지므로 예시는 과감하게 PASS

② DictVectorizer 변환

  • 데이터셋을 받아들여 문자열 라벨 데이터는 이진 변환, 숫자 데이터는 변환하지 않음
  • scikit-learn 패키지의 preprocessing 모듈 → LabelEncoder, LabelBinarizer
  • LabelEncoder: Label을 숫자로 변환
  • LabelBinarizer: 숫자를 이분법으로 변환

LabelEncoder 예시
LabelEncoder 예시
LabelBinarizer 예시

  • 위의 [0,0,1]은 LabelEncoder에서 2를, [1,0,0]은 LabelEncoder에서 0을 의미함

③ One-hot encoding 변환

  • 어떤 종류의 데이터도 이진변수(0 또는 1)만으로 변환할 수 있음
  • scikit-learn 패키지의 feature_extraction.text 모듈 → CountVectorizer 함수

시각화하려면 todense()를 사용하여 희소 행렬을 밀도있게 만들어야 함

  • 단어 사전에 없는 문장을 인코딩 할 경우 인코딩이 안되는 문제가 있음 → HashingVectorizer 함수 사용

더 정교한 토큰화가 필요하거나 데이터 처리양이 많을 경우 HashingVectorizer를 사용하는것이 좋음

 

반응형

'코딩 > Machine Learning' 카테고리의 다른 글

22. 데이터 준비(2)  (0) 2021.03.22
20. 로지스틱 회귀분석(Logistic Regression)  (0) 2021.03.21
19. 다중회귀분석(2)  (0) 2021.03.03
18. 다중회귀분석(1)  (0) 2021.02.26
17. 단순 선형 회귀 분석(2)  (0) 2021.02.23

댓글