안녕하세요~! 오늘은 파이썬 데이터 사이언스(Data Science)를 활용한 머신러닝의 대표 라이브러리인 Tensorflow

(텐서플로우)를 공부하였는데요. 같이 내용을 정리해보면서 복습하겠습니다. 

예전에 Javascript를 활용한 Tensorflow를 진행했었는데, 요즘은 Python을 공부하고 있어서 python을 활용한 Tensorflow를 다시 공부하게 되었습니다. 

일단 Tensorflow를 공부하려면 가장 좋은 방법은 생활코딩 홈페이지에 가셔서 공부를 하는 것입니다. (저 또한 코딩의 기초, 상당 부분을 이곳에서 배웠습니다.

https://opentutorials.org/course/4570

 

Tensorflow (python) - 생활코딩

수업소개 이 수업은 코드로 딥러닝을 구현해보는 딥러닝 기초 수업입니다.  텐서플로우를 이용하여 가장 간단한 형태의 텐서플로우 딥러닝 모델을 작성합니다. 무엇을 넣을까가 아니라, 무엇

opentutorials.org

일단 머신러닝이라는 큰 대제목 아래에는 다양한 소제목의 주제로 뿌리내린다.

1.기계학습(machine learning)

2.지도학습(supervised learning)

3.강화학습(reinforcement learning)

4.비지도학습(unsupervised learning)

5.군집화(Clustering)

6.변환(Transform)

7.연관(Association)

8.분류(Classification)

9.회귀(Regression)

 

내가 공부한 항목은 이 중에서 지도학습과 강화학습, 군집화, 연관, 분류, 회귀 이 정도인 것 같다. 특히 기계학습과 회귀를 중점적으로 교육영상에서는 다루었다.  

 

google colab에서 코드를 작성하며 실시간으로 실행시키며 진행하였다.

구글코랩....처음 써봤는데 엄청 좋다...!!!

 

지도학습(supervised Learning)

회귀(regression) 분류(classification)

(알고리즘)

1.Decision Tree

2.Random Forest

3.KNN

4.SVM

5.Neural Netwrok ( 사람의 뇌)

인공신경망 = Deep Learning 

이런 식으로 나뉘게된다.

 

다음은 레모네이드 판매량을 예측하는 모델을 코드로 만나보자!!

# 라이브러리 사용
import tensorflow as tf
import pandas as pd

# 데이터 준비 
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv'
데이터 = pd.read_csv(파일경로)
데이터.head()

# 종속변수, 독립변수
독립 = 데이터[['온도']]
종속 = 데이터[['판매량']]
print(독립.shape, 종속.shape)

# 모델을 만듭니다.
X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X,Y)
model.compile(loss='mse')

# 모델을 학습합니다.
model.fit(독립, 종속, epochs=1000, verbose=0)

# 모델을 이용합니다.
model.predict(독립)

#판매량을 에측합니다.
model.predict([[15]])

#1 과거의 데이터를 준비합니다.

#2 모델의 모양을 만듭니다. 

#3 데이터로 모델을 학습(FIT)합니다. 

#4 모델을 이용합니다.

 

1.기존 모델 실행 

2.기존 모델 다시 학습시키기

3.파이썬으로 ML 개발 

 

Epochs : 반복횟수. AI에게 교육시키는 횟수라고 보면 되겠다.

 

verbose = 0 을 하게 되면 반복입력하는 모니터 출력을 생략한다.

 

코드를 다 입력하고 마지막에 온도가 15일 때, 판매량을 예측하라 했을 때 30.1029로 거의 근사값을 예측을 한 것을 볼 수 있다. 막상 글을 다 쓰고 나니 처음 보신 분들이 굉장히 읽기 어렵고 무슨소리인지 모를 수도 있겠다는 생각이 든다... 그래도 나의 복습용으로 쓰는 것이기도 하니...하하... 다음에 조금 더 구체적이고 세분화되고 누구나 다 알아 볼 수 있는 글을 적는 것을 목표로 하여야 겠다.

GUI(Graphic User Interface) CLI(Command Line Interface)

컴퓨터에게 명령을 내리는 방법은 크게 GUI와 CLI로 나뉘어진다.

우리 사람들은 현재 GUI에 익숙해져서 편하게 컴퓨터나 폰 등을 사용중이다. 

그리고 나 같이 코딩을 공부 한 지 얼마 안 된 사람들에게는 아직은 GUI 방식이 좀 더 친숙한데... 오랜만에 GUI 형식의 툴(Tool)이 두두등장하였다..!! 확실히 화면을 보면서 드래그하고 똑똑 처리하니까 넘나 편하고... 넘나 친숙한 것....

서론은 됐고 지금부터 오렌지3(Orange3)에 대해서 같이 알아보도록 하자.

 

이전 글 TensorFlow와 마찬가지로 Orange3도 생활코딩에서 교육영상을 보며 공부하였다.

Orange3를 다운로드 받고 실행하면 이런 화면이 뜬다. 왼쪽에 보이는 Data 아래에 많은 아이콘들이 보인다. 이 아이콘들은 전부 기본 데이터로 활용되는 것들이 나열되어 있다. 

흰 화면에 드래그 방식으로 필요한 아이콘들을 옮겨놓는다. file위에 !가 붙어있는 건 오류가 발생해서이다. (파일 경로를 url형식으로 저장해놨는데 파일이 유실되었다... 아마도 url형식으로 파일 경로를 지정하면 그 당시에만 저장되고 껐다키면 없어지는 듯 하다. 즉 다시 url경로를 지정해줘야 하는 듯..) 하여간 이렇게 시각화 된 모습으로 데이터를 분석할 수 있다.

파일을 눌러서 파일을 업로드하거나 URL경로를 지정하면 그 데이터파일(엑셀 등)에 맞게 정보를 불러온다.

인공지능 모델들이 이렇게 나열되어 있다.(정확히는 학습모델이라고 보면 될 것이다.) 얼핏 한번 쯤은 들어본 모델들이 눈에 속속히 보일 것이다. 

데이터와 모델을 세팅하면 이제 측정을 해야하는데 Predictions로 예측치를 측정할 수 있고, Test and Score로는 학습모델들을 비교하여 어떤 모델이 우수한지를 비교하여 판단할 수 있다. 나머지 아이콘은 아직 안 써봐서 잘 모르겠다.

Unsupervised는 비지도 학습이라는 의미인데 아래는 비지도학습의 종류인 듯 하다. 아직 비지도학습의 경우 강의를 들은 것도 없고 정보가 미약해서 자세한 설명은 Pass.... 다음에 비지도학습 공부를 할 타이밍이 왔을 때 재밌고 깊게 제대로 공부해보고 싶다. 비지도학습의 모델들은 이름이 다 뭔가 생소하다.

오렌지3를 활용하여 여러 학습모델을 원본 데이터파일에 연결시킨 뒤, Predictions로 원본 데이터를 바탕으로 미래를 예측하고, Test and Score로 가장 우월한 학습모델을 비교하여 볼 수 있다. Orange3의 최대 장점은 역시 코드로 작성하면 코드의 양도 많고 복잡해보일 수 있는데, 이렇게 깔끔하게 아이콘으로 볼 수 있다는 것....!! 

요새 No code가 대세인데 Orange3도 대표적인 No Code 툴이라고 보면 되겠다. 드래그앤드랍(Drag&Drop) 방식으로 쉽게 코딩할 수 있는 시대가 도래하고 있다. 오렌지3 외에도 다양한 툴들이 노코드(no code)로 다가오고 있다. 뭔가 앞으로 재밌게 지켜볼 주제인 듯 하다. Orange3에 대해서 자세히 공부하고 싶으면 생활코딩 사이트로 가서 참고하길 바란다.

터미널 단축키 

Cmd k 지우기. = clear 

터미널언어 

Cd = change directory

Ls = 현재 파일의 리스트를 보여줌

mkdiv = 새폴더를만듬

Ls - al = 실행권한을 볼 수 있음

Sudo = 슈퍼커맨더로서 명령을내린다.

Sudo chmod a+x helloworld.py

Cd 디렉토리명 = 해당 디렉토리로 이동

cd.. = 상위 디렉토리로 이동

Cd 또는 cd~ 홈디렉토리로 이동

Rmdir 디렉토리명 = 폴더삭제 

Touch 파일명.확장자명 = 파일생성

Cp 대상파일명 변경파일명 타겟경로 = 복사(Copy)

Mv = 이동 (move)

Rm = 삭제 (remove)

Whoami = 내정보조회

cat= 텍스트 파일 열기

Vim 또는 vi = vim편집기 실행

grep=파일안 내용찾기

 

 

추후 추가나 수정 될 수도 있음..!!

+ Recent posts