총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2: 5화 “아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
Data Science/Machine Learning [머신러닝] 오렌지3로 회귀모델 실습하기

프로그래머스 강좌(오선영 강사님)를 이용해 머신러닝 감을 잡아보고자 한다. 


우리는 우리가 말할 수 있는 것보다 더 많이 알고 있다. by M.Polanyi

기계를 가르치기 위해서 기계가 스스로 깨달아야 하는 포인트가 있다. 그걸 위해 많은 학습 데이터로 공부시켜서 모델을 평가한다. (인간과 별반 다르지 않다는 사실이 놀랍다.)

 

기계학습

지도학습 Supervised Learning

  • 회귀(Regression)
  • 분류(Classification)

비지도학습 Unsupervised Learning

  • 군집(Clustering)
  • 연관분석(Association)

강화학습 Reinforcement Learning


지도 vs비지도

  • 학습 데이터에 정답지가 있느냐 없느냐의 차이
  • Classification과 Clustering의 차이는 Supervised냐 아니냐의 차이

Regression

  • (Linear) 데이터의 분포를 가장 잘 설명하는 직선을 찾는 것이다. 
  • 회귀 독립변수 feature와 종속변수 target의 관계를 모델링하는 기법
  • feature 개수에 따라 simle, multiple로 나눈다. 
  • target 값을 line으로 나타내면 그게 실제값과 얼마나 차이가 나는지 확인할 수 있다. 
    > 성능 평가 지표
  • MSE, RMSE(root), MAE(absolute) 오차값과 R2 (결정계수, r의 제곱) 

Classification 데이터를 특정 범주에 따라 분류
Clustering은 데이터 속성을 모르는 상태에서 분류
Association은 연결된 행동을 분석해서 다음 행동을 예측한다.


데이터는 정형 데이터와 비정형 데이터로 구분할 수 있다. 쉽게 생각하면 정형데이터는 일정 규칙이 있어서 table로 표현이 가능한거다. 비정형데이터는 이미지, 비디오 등을 생각하면 된다. 구조가 없는 데이터인데, 인스타에 남기는 글들 등도 비정형 데이터가 된다. 

정형 데이터

수치형(Numerical)

  • 연속형(Continuous)
    무게, 거리 등의 비율형과 온도와 같은 구간형
  • 이산형(Discrete)
    학생 수, 글자 수

범주형(Categorical)

  • 명목형(Norminal)
    순서가 없는 혈액형, 성별
  • 순서형(Ordinal)
    순서가 있는 데이터: 학력 수준(고졸, 대졸), 학점(A, B, C) 

Numerical vs. Categorical

  • 데이터가 숫자로 이뤄져 있다는 것과 수치형인 것과는 관계가 없다. 수치형은 수치로 측정할 수 있는 경우를 말한다. 범주형은 질적인 자료를 말한다. 예를 들면 혈액형이나 학력 수준 등이 있다. 범주형 데이터도 0, 1로 표현하기 때문에 숫자라 해서 Numerical data라고 할 수 없다. 


Numerical_Continuous vs. Discrete

  • 아날로그시계와 디지털시계의 차이점으로 생각하면 직관적이다. 

데이터와 머신러닝

데이터를 모델에 넣기 위해선 데이터가 어떤 데이터인지 알아야 한다. 데이터 시각화, 데이터 정제_전처리 등을 이용해 데이터 속성을 파악한다.

Supervised Unsupervised
Regression Classification Clustering Association
Numerical data Categorical data    
보험료 예측
주택가격 예측
거래량 예측
품종 분류
성별 분류
스팸메일 분류
입점 분석
고객 세분화
Image Segmentation
문서 군집화
장바구니 분석
사용자 행동분석
온라인 추천시스템

 

모델 테스트 

모델이 데이터로 학습 많이 했으니까 시험을 봐야 한다. 사람이랑 똑같다. 공부했으면 시험을 봐서 내가 어느 정도 수준인지 파악해야 한다. 테스트 데이터와 훈련 데이터를 나누지 못하면 모델의 예측 성능을 파악하기 어렵다.

일반적인 경우에, 테스트 데이터 : 훈련 데이터를 7:3, 8:2 비율로 둔다. 

Overfitting

한 테스트 데이터 셋만 오래 학습하면 true value에는 옳지 않은 값을 학습할 수 있다. 예를 들면 김치를 담글 때마다 매번 보쌈을 안 먹고 굴을 먹었다고 해보자. 25년 동안 굴만 먹다 보면 김장하면서 보쌈 먹는 사람을 보고 속으로 '굴을 먹어야지 뭐 하는 거야.'라고 생각해 버린다. 틀린 게 아닌데 말이다. 


실습 _ 서울 부동산 실거래가 파일로 금액 예측 모델 만들기

전처리 

데이터를 불러와서 각 rows의 속성을 설정해준다. data type(numerical, categorical)을 고르고, data role을 부여한다. 머신 러닝에서 데이터가 할 역할은 feature, target, meta, skip로 구분한다.

  • feature은 데이터 속성
  • target은 알고자하는 instance(행)
  • meta는 부가 정보로 모델 학습에 사용되지 않는다.
  • skip ~ !

이번 실습의 target은 물건금액이다.

 

전처리 내용

  • 법정동명대신 자치구명을 이용한다. 법정동은 categorical로 400개 즈음된다. 수가 너무 많아 관계 파악이 복잡해 데이터 분석이 되지 않기 때문에 mata data로 제외한다. 
  • 취소일이 있는 인스턴스는 제거했다.
  • 전처리: 결측치(missing)는 제거했다. 데이터가 6만 개였기 때문이다.

상관관계_건물면적과 건물가격

건물면적이 건물가격과 가장 높은 상관관계를 가졌다.


Linear Regression

회귀 모델 학습 예제

  • 학습 데이터 7 : 훈련 데이터 3
  • 건축 연도 2000년도 이상 조건을 넣으니 40.8K에서 28.6K로 인스턴수가 줄었다.

Data sampler를 회귀 모델에 연결하자마자 학습을 시작한다. Test and score로 모델 학습을 확인한다. 

  • 지금은 학습한 데이터를 Test 데이터로 이용했다. 

Test and Score

성과 지표

  • 분류 모델과는 다른 지표를 사용한다.
  • Linear에서 Regularization을 어떻게 하느냐에 따라서도 결과가 달라진다. 
  • 오차값과 R2가 완전히 독립적이지 않기 때문에 target의 속성에 따라 성과 지표를 선택, 해석하는 것도 달리 해야 한다.

MSE, RMSE, MAE

  • 정답과의 오차를 나타내므로 0에 가까울수록 좋다. 
  • 정확성: 시험지에서 깎인 점수

R2

    • 비례적인 변동량 _ 1-SSE/SST
    • SSE가 작을수록 좋다 = 1에 가까울수록 좋다.  
    • 독립 변수 x가 종속 변수 y를 얼마나 잘 설명해 주는지를 의미
    • 실제값이 회귀 직선과 얼마나 가까운 지를 따지는 것이다.

R2가 더 깊게 이해하는데 도움이 될 감사한 글이 있다. 

 

[회귀분석] 결정계수(R²; Coefficient of Determination)

Review 참고 포스팅 : 2020/09/27 - [Statistics/Regression Analysis] - [회귀분석] ANOVA(분산분석)를 이용한 회귀분석 접근 (1) - 제곱합(Sum of Squares) 2020/09/29 - [Statistics/Regression Analysis] - [회귀분석] ANOVA(분산분석)

datalabbit.tistory.com

 


성과 지표에 영향을 주는 Regularization을 살펴보자. Regularization은 overfitting을 피하기 위해 사용된다. 

선형 회귀는 y = ax + b로 target 데이터를 나타내는데, overitting을 막으려고 a (가중치 = 회귀계수)를 이용해 특정 데이터에 대해 penalty를 주는 것이다. 

1. Ridge regression(L2)

  • 각 계수들의 제곱을 더하는 방식
  • feature 간 상관관계를 제거하는 경우

2. Lasso regression(L1)

  • 각 계수들의 절댓값을 더하는 방식
  • feature 선택이 필요하거나 특정 feature의 중요성을 부각하는 경우 

3. Elastic net regression

  • L1 + L2

각 계수에 절댓값? 제곱?  무슨 말인지는 아래 포스트를 참고해 주세요!

 

[Deep Learning] Regularization

[Deep Learning] Regularization Regularization에 대해 자세히 알아보려면 Overfitting이 무엇인지 알아야한다. 그럼 Overfitting과 더불어 Underfitting 까지 알아보자. Overfitting 한 data set에만 지나치게 최적화된 상태

simsim231.tistory.com

 


또 다른 회귀 모델, Random Forest

Decision Tree 여러 개를 두고 예측값을 종합해 최종 예측하는 방법이다. Decision Tree는 feature에 기준값을 주고 이에 따라 data를 나누게 된다. Root 데이터를 설정한 기준에 따라 계속해서 나누면서 말단 노드에 데이터 중 한 분류만 남겨놓게 하는 것이다. 이렇게 target을 구한다. 

* 이해하기 매우 쉽고 정확한 포스트를 발견했다.

 

머신러닝 - 5. 랜덤 포레스트(Random Forest)

이전 포스트에서 결정 트리(Decision Tree)에 대해 알아봤습니다. 랜덤 포레스트를 배우기 위해서는 우선 결정 트리부터 알아야 합니다. 결정 트리에 대해 잘 모른다면 이전 포스트를 먼저 보고 오

bkshin.tistory.com

 

Data Science/Machine Learning [머신러닝] 오렌지3로 회귀모델 실습하기