인공지능/자연어 처리

자연어 처리 - Linear Regression 선형 회귀, Cost function 비용함수 실습

이게될까 2024. 1. 9. 18:35
728x90
728x90

이 본문은 제가 복습하는 느낌으로 그냥 강의를 캡쳐한 것이라 실제 제가 한 것을 보고 싶다면 아래 링크로 가시면 됩니다.

2023.11.13 - [인공지능/공부] - Linear regression 1

 

Linear regression 1

import numpy as np import matplotlib.pyplot as plt # ==================== Part 1: Basic Function ==================== print('Running warmUpExercise ... ') print('5x5 Identity Matrix: ') def warmUpExercise(): return np.eye(5)# YOUR CODE HERE warmUpExercise(

yoonschallenge.tistory.com

위에는 Tensor flow를 사용했습니다.

코랩을 통해 데이터를 받아옵시다.

오늘은 집값 예측하기!

없는값 찾기

이렇게 보면 불편하다. column이 너무 많다!

이렇게 봐도

너무너무 불편하다!

sort후 비어있는 값이 제일 많은 것들 20개만 봤다.

80% ~ 90% 가 비어있는 값들도 많다.

feature도 너무너무 많다. feature를 몇개만 골라서 써보자

저 고른 것 중에 하나에도 비어있는 값이 있다.

채우자!

중앙값으로 채웠다.

이제 이걸 함수로 만든다!

데이터가 어떤 데이터인지 분석하기

plot을 통해 데이터 어떤지 확인

클래스가 너무 많다.

숫자는 주거의 타입이라 숫자가 크다고 좋은 것은 아니다.

지역 분류!
이진 분류도 차이가 많이 난다.

이번엔 numerical 분석하기

이렇게 생겼다.

비례하는 모습이 있다.

피쳐 엔지니어링을 시작한다.

Street는 0과 1로 부여해준다.

중앙난방 여부도 0 과 1로 해준다.

함수를 만들어 간다.

이렇게 사용할 수 있다.

이제 여러가지 있는 경우!

원핫 인코딩을 통해 표현한다.

확인해보면 원핫 인딩이 쭉 되어 있다.

종류가 많으니 잘 확인해야 한다.

숫자형 데이터도 확인!

범위가 굉장히 컸다. 즉 보정이 필요하다.

일단 그냥 넣고 normalization을 한다.

이번엔 standardization을 사용한다.

평균과 표준 편차를 이용하여 한다.

함수는 위와 같이 생겼다.

이전 함수에서 업데이트 되어 이렇게 된다.

이제 이 함수를 사용하자!

데이터를 셔플 후 나눴다.

이제 학습을 위한 라이브러리 넣기!

모델을 만들어 보자!

단순하게 만든다...

텐서로 만드는거 꼭 잊지 말기

y로 출력값 뽑기!

Cost function 정의하기

MSE를 사용했다.

optimizer는 SGD로 사용한다.

학습은 LOSS가 너무커서 nan이 떴다.

y도 크고 lr도 커서 nan이 된다. y도 스케일링을 한다.

이렇게 하면 적절한 작은 값이 나온다.

이제 클래스로 만들어준다.

스캐일링 하는 것을 되돌려 주는 것도 있다.

다시 학습하기! lr도 줄이고 weight decay도 넣었다.

평가하기!

예측값과 실제값의 평균을 보여준다.

시각화를 하면 좋은 성능을 보인다고 할 순 없다.

polynomial regression을 사용하면 정확하게 맞출 수 있게 된다.

주석 처리된 것을 해제하면 된다.

 

파라미터들의 움직임을 확인할 수 있다.

 

728x90