드레:
코딩 뿌시기
드레:
전체 방문자
오늘
어제
  • 분류 전체보기 (268)
    • Python (74)
      • Python 기초 (42)
      • Numpy (8)
      • Pandas (22)
    • Machine Learning (31)
      • Machine Learning (1)
      • Deep Learning (27)
    • AWS (22)
      • RDS (3)
      • EC2 (9)
      • Lambda (8)
      • S3 (2)
    • MySQL (24)
    • Git (8)
    • Streamlit (12)
    • REST API (22)
    • Java (24)
    • Android (36)
    • Debugging (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • rest api
  • 액션바
  • github
  • Transfer Learning
  • Callback
  • volley
  • tensorflow
  • 서버리스
  • fine tuning
  • Streamlit
  • AWS
  • CNN
  • serverless
  • 깃이그노어
  • pandas
  • flask
  • aws s3
  • API
  • 딥러닝
  • 네이버 API
  • JWT
  • Ann
  • Java
  • GET
  • EC2
  • 안드로이드 스튜디오
  • AWS Lambda
  • Retrofit2
  • Python
  • Lambda

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
드레:

코딩 뿌시기

Tensorflow - regression(수치예측) 문제의 인공신경망(ANN)
Machine Learning/Deep Learning

Tensorflow - regression(수치예측) 문제의 인공신경망(ANN)

2022. 12. 28. 21:05

Car_Purchasing_Data.csv
0.06MB

 

 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('Car_Purchasing_Data.csv', encoding='ISO-8859-1')

 

0. 데이터 확인

df.info()
df.describe()

 

 

1. nan이 있는지 확인

df.isna().sum()

 

 

2. 학습데이터 X와 정답데이터 y로 분리

X = df.loc[:, 'Gender':'Net Worth'] 
y = df['Car Purchase Amount']

 

 

 

3. X, y 모두 숫자 데이터이므로 인코딩 할 필요 없다.

 

 

4. feature scaling

from sklearn.preprocessing import MinMaxScaler

scaler_X = MinMaxScaler()
scaler_y = MinMaxScaler()
X = scaler_X.fit_transform(X.values)

 

y = scaler_y.fit_transform(y)

 

위 코드는 y가 1차원이기 때문에 ValueError가 발생한다.

y의 shape을 변경해 준다.

 

y.reshape(-1, 1)

이것도 많이 하는 실수인데, 판다스 시리즈는 reshape 메소드가 없어서 에러가 발생한다.

y대신 y.values를 reshape 해준다.

 

y.values.reshape(-1, 1)

y_scaled = scaler_y.fit_transform(y.values.reshape(-1, 1))

 

 

 

5. train, test 데이터 분리

 

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y_scaled, test_size=0.25, random_state=50)

 

 

6. 인공신경망 모델 연결하기

 

from keras.models import Sequential
from keras.layers import Dense

def build_model():
  model = Sequential()
  model.add(Dense(units=5, activation='relu', input_shape=(5,)))
  model.add(Dense(units=25, activation='relu'))
  model.add(Dense(units=10, activation='relu'))
  model.add(Dense(units=1, activation='linear'))
  model.compile(optimizer='adam', loss='mse', metrics=['mse', 'mae'])
  return model

regression 모델의 output 활성화함수는 'linear'를 쓴다.

 

model = build_model()

 

 

7. 모델 학습

 

model.fit(X_train, y_train, batch_size=10, epochs=20)

 

 

8. 모델 평가

 

model.evaluate(X_test, y_test)

 

 

9. 실제 예측

 

new_data = np.array([0, 38, 90000, 2000, 500000, 1, 27, 30000, 10000, 300000])
new_data = new_data.reshape(2, 5)
new_data = scaler_X.transform(new_data)
y_pred = model.predict(new_data)
scaler_y.inverse_transform(y_pred)

 

이 인공지능을 서비스하려 할 때 필요한 파일은?

model, scaler_X, scaler_y

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

Tensorflow - Validation(검증)을 사용하는 방법  (0) 2022.12.29
Tensorflow - Learning rate(학습률)을 설정하는 방법  (0) 2022.12.29
Tensorflow - Grid Search 를 이용한, 최적의 하이퍼 파라미터 찾기  (0) 2022.12.28
Tensorflow에서 학습시 batch size, step, epoch 란?  (0) 2022.12.28
Tensorflow - 이진 분류 문제의 인공신경망(ANN)  (0) 2022.12.28
    'Machine Learning/Deep Learning' 카테고리의 다른 글
    • Tensorflow - Validation(검증)을 사용하는 방법
    • Tensorflow - Learning rate(학습률)을 설정하는 방법
    • Tensorflow - Grid Search 를 이용한, 최적의 하이퍼 파라미터 찾기
    • Tensorflow에서 학습시 batch size, step, epoch 란?
    드레:
    드레:

    티스토리툴바