개발/머신러닝 29

파이썬 머신러닝 - Item based collaborative filtering recommend system (pivot, corr 이용)

추천 시스템을 만드는 방법 중에서 Item 기반으로한 추천 방법을 만들어보겠습니다. 1. 제작에 필요한 라이브러리를 import import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline from google.colab import drive drive.mount('/content/drive') - 구글 코랩으로 만들기 때문에 드라이브 연동부분은 패스 하셔도 상관없습니다. 2. 데이터를 읽어옵니다. (csv) movie_titles_df = pd.read_csv('Movie_Id_Titles.csv') movies_rating_df = pd.read_csv('u.d..

개발/머신러닝 2023.01.03

파이썬 머신러닝 - 이미지파일을 테스트용과 학습용으로 나누기 위한 copyfile()

리눅스에서 파일을 복사하는 방법은 copyfile(파일의 경로 + 파일명 , 이동할 경로 + 저장명) 으로 가능하다. import os import zipfile import random import tensorflow as tf from tensorflow.keras.optimizers import RMSprop from tensorflow.keras.preprocessing.image import ImageDataGenerator from shutil import copyfile def split_data(SOURCE, TRAINING, TESTING, SPLIT_SIZE): # 소스는 원본 파일 경로 # 트레이닝은 이동할 트레이닝 경로 # 테스팅은 이동할 테스팅 경로 # 스플릿 사이즈는 트레이닝데이..

개발/머신러닝 2022.12.30

파이썬 머신러닝 - CNN 러닝 , 이미지압축풀기 , 이미지 증강, 이미지(jpg,png등)를 변환하기

이번에는 직접 CNN을 해보겠습니다. 1. 연습용 이미지 파일 다운로드 !wget --no-check-certificate \ https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip \ -O /tmp/cats_and_dogs_filtered.zip 2. 이미지 압축 풀기 import zipfile # 코랩에 tmp 경로에 파일을 읽어옵니다. file = zipfile.ZipFile('/tmp/cats_and_dogs_filtered.zip') # tmp 경로에 압축해제합니다. file.extractall('/tmp') 3. cnn 모델링을 만듭니다 import tensorflow as tf from keras.models impo..

개발/머신러닝 2022.12.30

파이썬 머신러닝 - 이미지 러닝 CNN , convolution , pooling

DNN ( ann의 히든레이어가 2개 이상) 는 이미지를 flat 하게 1차원 데이터로 학습을 합니다. 이렇게 1차원 으로 처리를 하게 되면 이미지의 위치 특성이 없기 때문에 정확도가 떨어지는 문제가 발생합니다. 따라서 1차원이 아닌 이미지 그대로를 학습시키기 위해서 CNN을 사용합니다. CNN 은 Filter 를 통해 이미지를 한번 스캔을 해 얻은 특성으로 학습을 합니다. 예시를 들어 위와 같은 3 x 3 필터가 있어 이미지의 벡터 값과 곱하면서 새로운 feature map 을 만드는 Convolution 과정을 거치게 됩니다. 이렇게 필터를 이용해 스캔을 하게 되면 사이즈는 작아지게 됩니다. 위 사진은 5x5 인 이미지 데이터가 3x3 으로 스캔을 한칸씩 이동하면서 하기 때문에 결과물이 3x3 으로 ..

개발/머신러닝 2022.12.30

파이썬 머신러닝 - 레이블 y 값을 원핫인코딩으로 바꾸기.

딥러닝에서 y의 값이 레이블 형식인데 원 핫 으로 사용하고 싶다면 tf.keras.utils.to_categorical(y_train,num_classes=10 ) num_classes 는 y 데이터의 분류할 갯수이다. 즉 지금은 10개로 분류하겠다는 뜻이다. 이렇게 y를 원 핫 인코딩 으로 변경해서 사용할 경우 compile 에서 loss 함수가 달라지 게 된다. model.compile(optimizer='adam',loss = 'categorical_crossentropy',metrics=['accuracy'] ) 이런식으로 카테고리컬 크로스엔트로피로 사용해야한다.

개발/머신러닝 2022.12.29

파이썬 머신러닝 - 텐서플로우를 이용하여 인공지능 저장하기.

텐서플로우에서는 기본적으로 저장을 지원합니다. 1. 폴더로 저장하기 # 폴더 구조로 저장 model.save('fashoin_mnist_model') save 안에는 경로와 저장될 이름을 적어주시면 됩니다. 경로가 없을 경우 여러분들이 작업하시는 파일과 동일한 위치에 저장됩니다. 읽어오는 방법은 model2 = tf.keras.models.load_model('fashoin_mnist_model') 이런식으로 load_model 을 이용합니다. 2. 파일로 저장하기 model.save('fashoin_mnist_model.h5') 읽어오기 model3 = tf.keras.models.load_model('fashoin_mnist_model.h5') 3. 네트워크와 웨이트를 따로 저장하기 네트워크 with..

개발/머신러닝 2022.12.29

파이썬 머신러닝 - flatten 라이브러리 대신 , validation_data 사용하는 방법

이전 포스트에서 이어집니다. https://mokokodevelop.tistory.com/111 flatten 은 2차원 데이터인 이미지를 1차원 데이터 처럼 만드는 라이브러리입니다. flatten 없이 numpy에 reshape로도 만들 수 있습니다. 가로 (28) 세로 (28) 인 이미지가 있습니다. 이 이미지의 총 데이터 수는 28 x 28이고 하나의 행을 가지고 이 수만큼의 컬럼을 가지게끔 reshape를 한다면 1차원 데이터 처럼 보이게 됩니다. # 행 28 , 열 28 image.reshape(28*28,) -- 이전 포스트에서는 validation_split 을 이용했다면 이번에는 validation_data 입니다. validation_data 는 학습될때마다 테스트하기 위한 파일이 이미 ..

개발/머신러닝 2022.12.29

파이썬 머신러닝 - softmax 로 처리한 결과값을 레이블인코딩, 오버피팅을 처리하는 콜백클래스 이용

이전 포스트에서 작성하였던 이미지 관련 학습데이터를 이용합니다. https://mokokodevelop.tistory.com/110 파이썬 머신러닝 - 이미지 학습을 위한 flatten, 3개 이상 분류 액티베이션함수 softmax 와 loss 셋팅방 파이썬에서 이미지를 학습하기 위해서 먼저 이미지의 구조를 알아야 합니다. 파이썬에서 이미지는 가로 x 세로의 좌표값에 색상코드를 가지고 있게 됩니다. (0~ 255) 즉 이미지는 기본적으로 2차 mokokodevelop.tistory.com 만들어 놓은 model 로 X_test 값을 넣어 예측을 해봅니다. 예측한 결과물은 아웃레이어의 노드수가 10개였으므로 1개의 데이터당 10개씩 나오게 됩니다. ( 1번 데이터를 넣으면 결과물로 나온게 10가지라는 뜻입..

개발/머신러닝 2022.12.29

파이썬 머신러닝 - 이미지 학습을 위한 flatten, 3개 이상 분류 액티베이션함수 softmax 와 loss 셋팅방법.

파이썬에서 이미지를 학습하기 위해서 먼저 이미지의 구조를 알아야 합니다. 파이썬에서 이미지는 가로 x 세로의 좌표값에 색상코드를 가지고 있게 됩니다. (0~ 255) 즉 이미지는 기본적으로 2차원 데이터라는 소리입니다. 그럼 이 이미지들의 데이터셋들(이미지가모여있으면)은 3차원 데이터가 됩니다. 가로 x 세로로 이미지가 표현되고 그 이미지들이 겹겹이 쌓여있어 높이를 형성했다 라고 생각하시면 됩니다. 텐서플로우에는 이러한 이미지를 가지고 테스트할 수 있도록 데이터가 들어있습니다. import tensorflow as tf # fashion_mnist 라는 라이브러리로 들어있습니다. mnist=tf.keras.datasets.fashion_mnist 이 가져온 라이브러리에서 트레이닝과 테스트 셋을 가져옵니다..

개발/머신러닝 2022.12.28

파이썬 머신러닝 - learning rate 와 validation , earlystopping

learnig rate 란? optimizer 를 설정할때 주는 파라미터로 이 파라미터값에 따라 가중치 값이 달라지게 됩니다. def build_model() : model = Sequential() model.add(Dense(units = 64 , activation = 'relu' , input_shape=(9,))) model.add(Dense(units=64,activation='relu')) model.add(Dense(units=1,activation='linear')) model.compile(optimizer = tf.keras.optimizers.Adam(learning_rate=0.001) , loss ='mse' ,metrics =[ 'mse','mae' ] ) return mode..

개발/머신러닝 2022.12.28