관리 메뉴

DeseoDeSeo

[ Deep Learning ] co lab에서 간단 머신러닝 본문

Deep Learning

[ Deep Learning ] co lab에서 간단 머신러닝

deseodeseo 2023. 9. 15. 17:52

  • 딥러닝 이란?
    • 인간의 신경망을 모방하여 학습하고 예측하는 기술
    • 대량의 데이터에서 복잡한 패턴이나 규칙을 찾아내는 능력이 뛰어남.
    • 머신러닝에 비해 조금 더 유연한 사고를 한다.
    • 인간의 뉴런 == 딥러닝에서 '선형모델'
    • 주로, 영상, 음성, 이미지 처리에 사용된다 ~
  • tensorflow
    • 구글이 만든 딥러닝을 위한 라이브러리

- keras

  • tensorflow 위에서 동작하는 라이브러리로 사용자 친화적 라이브러리.

 

tensorflow 버전 확인
:
# 2.13.0
# 설치버전 확인 이유: 프로젝트 진행 시 오픈 소스 가져다 쓸 때 충돌방지 !
import tensorflow as tf
print(tf.__version__)

 

리눅스 기반의 코랩( 리눅스 명령어 그대로 사용 가능)
# 리눅스 명령어를 사용하여 현재 작업 디렉토리 확인 Print WOrk Directory
!pwd

현재 작업 디렉토리의 파일 목록 조회
!ls

작업 디렉토리 변경
%cd ( change directory )
# 영구적인 작업을 할 때는 느낌표가 아닌 %를 사용함.
%cd "/content/drive/MyDrive/Colab Notebooks/DeepLearning"

다시 현재 폴더 경로 확인
!pwd

⛧ 목표

  • 공부시간에 따른 수학성적을 예측하는 회귀 모델을 만들어보자.
  • keras를 활용해서 신경망을 구성하는 방법을 연습해보자.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#데이터 불러오기
data= pd.read_csv('./data/student-mat.csv', delimiter=';')
data
# 데이터 정보확인
data.info()

문제와 답으로 분리하기
  • 입력특성 : 1개 (studytime)
  • 정답 : G3
# 문제데이터(x)
X = data['studytime']
# 정답데이터(y)
y = data['G3']

from sklearn.model_selection import train_test_split

# train, test 분리
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=915, test_size=0.2)

# 크기확인
X_train.shape, y_train.shape

# 머신러닝 모델은 입력특성을 2차원으로 받는다!
# 1차원 ➜  2차원으로 변경 !
#1차원 시리즈 데이터를 2차원 데이터로 바꾸기.
X_train.values.reshape(316,1).shape

머신러닝 모델과 딥 러닝 모델의 차이점

  • 머신러닝
    • 완제품 장난감과 같다. : 팔 정도만 움직일 수 있다.(하이퍼파라미터만 조절 가능.)
    • 모델생성(완성된 객체 사용) ➜ 모델학습 ➜ 모델 예측 ➜ 모델 평가
  • 딥러닝
    • 레고블럭과 같은 역할. : 다양한 구성이 가능함.
    • 모델생성( 모델을 직접 구성 ) ➜ 모델 학습 ➜ 모델 예측 ➜ 모델 평가
from sklearn.linear_model import LinearRegression # 선형 회귀 모델
from sklearn.metrics import mean_squared_error # 회귀 모델의 평가 지표 도구

from sklearn import linear_model
# 1.모델 생성
linear_model= LinearRegression()
# 2. 모델 학습(학습용 문제, 학습용 정)
linear_model.fit(X_train.values.reshape(316,1), y_train)
# 3, 모델 예측(테스트용 문제)
linear_pre = linear_model.predict(X_test.values.reshape(-1,1))
# 4. 모델 평가(실제값, 예측값)
mean_squared_error(y_test, linear_pre)