본문 바로가기

인공지능50

[추천 기능] ltem based collaborative filtering 영화 추천 시스템 만들기 📝ltem based collaborative filtering으로 영화 추천하는 기능 만들기 우선 데이터 데이터 프레임을 불러와서 불필요한 컬럼을 제거하고 합쳐준다 import pandas as pd import numpy as np # 영화정보파일과 리뷰파일을 불러온다 movie_titles_df = pd.read_csv('Movie_Id_Titles.csv') movies_rating_df = pd.read_csv('u.data', sep='\t', names= ['user_id', 'item_id', 'rating', 'timestamp']) # timestamp 컬럼은 필요없으니, movies_rating_df 에서 제거 movies_rating_df.drop('timestamp', axis= .. 2023. 1. 3.
Time Series 데이터를 처리할때 사용하는 resample 함수 📝Time Series 데이터를 처리할때 사용하는 resample 함수 그룹바이 함수를 이용해서는 날짜 데이터를 바로 년단위 월단위 일단위 시단위 등으로 묶어라 라고 할 수 없다 따라서 먼저 Date컬럼을 인덱스로 만들어 주어야 resample 함수를 사용할 수 있게 된다 resample 함수가 년단위 월단위 등등으로 데이터를 묶어서 처리가 가능하다 ※ Date컬럼 = Dtype : datetime64[ns] 우선 사용할 컬럼의 데이터 타입을 알아보고 오브젝트일경우 데이트타임으로 바꿔준다 df['Date'].info() # format=에 해당 컬럼에 날짜가 입력 되어있는 형식을 입력해준다 df['Date'] = pd.to_datetime( df['Date'], format= '%m/%d/%Y %I:%M.. 2023. 1. 3.
Prophet 라이브러리를 이용한 Time Series 데이터 예측하기 📝Prophet 라이브러리를 이용한 Time Series 데이터 예측하기 우선 라이브러리를 준비해야하지만 지금 사용하는 google colab에는 깔려 있으니 따로 인스톨은 안했다 ※ 프로펫 라이브러리가 fbprophet에서 prophet으로 변경되었음 Time Series Data? 날짜별로 데이터가 있는 형식 csv파일을 읽어와서 데이터 분석해보고 날짜순으로 정렬한다 (데이터 분석코드 생략) # avocado.csv 데이터 읽어와서 분석하기 df = pd.read_csv('avocado.csv', index_col=0) df.describe() # 날짜를 정렬해준다 df.sort_values('Date', inplace= True) 프로펫 분석을 위해서는 날짜와 예측하고싶은 데이터가 필수로 있어야한다.. 2023. 1. 2.
[Deep Learning] 가장 좋은 모델과 기록을 자동 저장하기 ModelCheckPoint, CSVLogger 📝epoch 마다 가장 좋은 모델을 자동으로 저장하는 ModelCheckPoint / 기록을 저장하는 CSVLogger 우선 모델과 로그를 저장할 디렉토리를 만든다 # 파이썬 코드로 디렉토리 만들기 # PROJECT_PATH 변수에는 내 드라이브 파일경로를 저장해두었다 if not os.path.exists(PROJECT_PATH + '/checkpoints/' + model_type + '/') : os.makedirs(PROJECT_PATH + '/checkpoints/' + model_type + '/') if not os.path.exists(PROJECT_PATH + '/log/' + model_type + '/') : os.makedirs(PROJECT_PATH + '/log/' + model.. 2023. 1. 2.
[Deep Learning] Transfer Learning Fine tuning 📝트랜스퍼러닝 후 파인튜닝하기 개와 고양이 사진을 분류하는 딥러닝 Transfer Learning 해보기(https://coding-jisu.tistory.com/169)에서 추가적으로 파인튜닝을 해봤다 파인 튜닝? 섬세한 튜닝 이 방법은 꼭 트랜스퍼 러닝을 한 다음에 수행하는 방법이다 위의 트랜스퍼러닝을 한 후에 조금 더 개선이 가능한지 해보는 방법으로서 위에서 학습한 모델을 가지고 그 상태에서 추가로 학습을 시키는 것이다 단, 좋은 모델의 일부분을 내 데이터로 학습 가능하도록 변경한 후에 학습시킨다 일단 베이스 모델의 전체 레이어를 다시 학습 가능토록 바꿔주고 베이스 모델의 전체 레이어 수를 확인한다 레이어 갯수를 확인했으니 몇번째 레이어까지 학습이 안되도록 할 것인지 결정해 준다 # 1. base_.. 2023. 1. 2.
[Deep Learning] 사진 분류하는 딥러닝 Transfer Learning으로 해보기 (MobileNetV2 활용) 📝개와 고양이 사진을 분류하는 딥러닝 Transfer Learning으로 해보기 Transfer Learning? 이미 학습이 완료된 인공지능을 가져다가 쓰는 것이다 = 내 데이터로 다시 재 학습(보강해서)해서 사용 MobileNetV2? 모바일이나 임베디드에서도 실시간을 작동할 수 있게 모델이 경량화 되면서도 정확도 또한 많이 떨어지지 않게하여 속도와 정확도 사이의 트레이드 오프 문제를 어느정도 해결한 네트워크 ※ 트랜스퍼 러닝에 사용 가능한 모델들 참고하기 (https://www.tensorflow.org/api_docs/python/tf/keras/applications) 트랜스퍼 러닝은 학습이 잘 된 모델을 가져와서 나의 문제에 맞게 활용하는 것이므로 학습이 잘 된 모델의 베이스모델만 가져온다(헤.. 2023. 1. 2.
[Deep Learning] 원본 파일을 train / test 파일로 분리하기 📝원본 파일을 train / test 파일로 각각 분리하기 /tmp 디렉토리 안에 학습을 위한 데이터를 분류하기 위해 cats-v-dogs 디렉토리를 만들고 그 아래 training 과 testing 디렉토리 만든 후 각각 디렉토리 안에 cats와 dogs 디렉토리를 만든다 import os try: #YOUR CODE GOES HERE os.mkdir('/tmp/cats-v-dogs') os.mkdir('/tmp/cats-v-dogs/training') os.mkdir('/tmp/cats-v-dogs/testing') os.mkdir('/tmp/cats-v-dogs/training/cats') os.mkdir('/tmp/cats-v-dogs/training/dogs') os.mkdir('/tmp/cat.. 2023. 1. 2.
[Deep Learning] CNN 개와 고양이 사진을 분류하는 딥러닝 해보기 📝딥러닝 CNN으로 개와 고양이 사진을 분류하는 딥러닝 해보기 이미지는 캐글 "Dogs vs. Cats" dataset 에서 2,000개만 가져왔다 !wget --no-check-certificate \ https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip \ -O /tmp/cats_and_dogs_filtered.zip 가져온 파일 압축을 풀고 import zipfile file = zipfile.ZipFile('/tmp/cats_and_dogs_filtered.zip') file.extractall('/tmp') 학습용 개 사진이 저장된 디렉토리안에 있는 파일명을 확인 import os # train_dir 경로에 dogs .. 2023. 1. 2.
[Deep Learning] CNN TensorFlow 이미지 분류하는 딥러닝 해보기 📝딥러닝 CNN 텐서플로우 이미지를 분류하는 딥러닝 해보기 기존에 DNN으로 해봤던 이미지 분류를 CNN을 이용해 분류해봤다 (https://coding-jisu.tistory.com/158) import tensorflow as tf from keras.models import Sequential from keras.layers import Dense, Flatten # 데이터 가져와서 학습용과 테스트용으로 분리 fashion_mnist = tf.keras.datasets.fashion_mnist (X_train, y_train), (X_test, y_test) = fashion_mnist.load_data() # CNN을 이용할것이기 때문에 4차원으로 변경(학습용과 테스트용 둘 다 변경) X_trai.. 2022. 12. 30.
[Deep Learning] 이미지 파일 학습 데이터로 만들기(+이미지 증강) ImageDataGenerator 📝CNN 학습 하기전 이미지 파일(jpg, png..)을 학습 데이터(넘파이의 어레이)로 만드는 방법 fit 함수에 들어가는 데이터는 넘파이 어레이가 들어가야하지만 가지고 있는 데이터는 이미지 파일(png)이라 현재 상태로는 fit 함수를 이용한 학습이 불가능하다 이미지 파일을 넘파이 어레이로 변환시켜주는 라이브러리(ImageDataGenerator)를 사용해 변환하자 from keras.preprocessing.image import ImageDataGenerator # 파라미터에 적은 rescale=는 이미지 사이즈를 255로 나눠서 피처스케일링 해서 가져오라는 것 # 라이브러리를 변수에 저장하여 사용한다 train_datagen = ImageDataGenerator(rescale= 1/255.0) .. 2022. 12. 30.