data science/Artificial Intelligence 15

[deep learning] 2. Fashion MNist (pytorch 버젼)

keras 버젼은 아래를 참조 [deep learning] 2. Fashion MNist (keras 버젼)목적1. 이미지 데이터의 분류(classification)2. 학습 데이터의 가공 방법3. 모델의 문제점 분석과 개선 전략 데이터셋 패션_엠니스트 | TensorFlow Datasets이 페이지는 Cloud Translation API를 통해 번역되었습eldercoder.tistory.com 1. 패키지 설치pip install torchpip install torchvision2. 임포트import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport torchimport torch.nn as..

[deep learning] 2. Fashion MNist (keras 버젼)

목적1. 이미지 데이터의 분류(classification)2. 학습 데이터의 가공 방법3. 학습의 조기종료 방법4. 모델의 문제점 분석과 개선 전략5. 학습 모델의 저장과 로드 사용 데이터셋 패션_엠니스트 | TensorFlow Datasets이 페이지는 Cloud Translation API를 통해 번역되었습니다. 패션_엠니스트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Fashion-MNIST는 60,000개의 예제로 구성된www.tensorflow.orgWxH=28x28 의 1채널 그레이 이미지로 60,000개의 학습용과 10,000개의 테스트용으로 구성 레벨 데이터는 아래와 같이 10개 구성0T-shirt/top1Trouser2Pullover3Dress4Co..

[deep learning] 1. Combined Cycle Power Plant (keras 버젼)

목적과거 발전소에서의 조건 [AT: 시간당 평균 온도] [V: 배기진공] [AP: 주위 압력] [RH: 습도] 에 따라 출력 [PE] 데이터를 학습하므로써 새로운 조건에 따라서 예상 출력을 예측하는 모델의 구축.데이터셋 UCI Machine Learning RepositoryThis dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This allows for the sharing and adaptation of the datasets for any purpose, provided that the appropriate credit is given.archive.ics.uci.edu1...

Transformer (GPT) 가장 쉽게 이해하기 - Part 2

GPT2 - Small 모델의 예 (GPT2 - Small) Multi Block과 하나의 Block 내에서의 Multi-head Attention 아래는 내 나름대로 궁금했던 점들을 해소한 후에 간소하게 정리한 다이어그램이다. 실질적으로는 중간 중간에 세부 처리가 들어가는 경우가 있다. 입력으로 "I am a" 있을 경우 GPT는 다음에 올 가장 적절한 단어(토큰)을 제시해야 한다. ・입력은 토큰으로 분리되고 다시 Embedding으로 768 차원으로 변환된다. (그 후엔 Positioning Embedding은 생략됐다.)・그 후 12개의 Block(GPT2-Small model의 경우)에 전달된다.(Dropout과 Normalization은 생략됐다.)・각 12개의 Block은 학습(Train)에 ..

Transformer (GPT) 가장 쉽게 이해하기 - Part 1

기존 자연언어처리와 Transformer 의 차이“고양이가 쥐를 잡았다. 그것은 매우 빠르다.” RNN/LSTM: “그것은”이 뭔지를 이해하려면 “고양이”를 기억해야 함 하지만 이미 여러 단계를 지나 기억이 약해질 수 있음 → “쥐”로 착각할 수도 😅 Transformer: “그것은”이 “고양이”와 더 강하게 연결되어 있음을 Attention으로 바로 파악 그래서 “그것은 매우 빠르다” → “고양이가 매우 빠르다”라고 올바르게 이해“Self-Attention”이란?문장의 각 단어가 다른 모든 단어를 바라보며,“너랑 나는 얼마나 관련이 있지?”를 점수로 계산하는 방식. ☞ 문장 예시“고양이가 쥐를 쫓았다.” ☞ 단어별로 서로의 관계를 평가합니다.쳐다보는 단어 주로 주목하는..

SVM(Support Vector Machines) Classifier

별과 삼각형을 분류하기 위해서 가장 넓은 하늘색 공간(maximum marginal hyperplane(MMH))을 찾는 알고리즘이다. 이 공간을 계산하기 위해 인접한 Support Vectors 라 불리는 데이터 포인트를 이용하게 된다. from sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn import svmfrom sklearn.metrics import classification_report, confusion_matriximport pandas as pdimport seaborn as snsiris = sns.load_dataset('iris')X_i..

K-Neighbors Classifier

K-Neighbors Classifier란 분류하고자 하는 샘플(Pt)과 가장 가까운 K개의 이웃들 중 가장 많이 속해있는 클래스를 선택하는 분류기이다.만약 k=3으로 하면 별은 보라색원에 속하는 것이고(보라색원 2 > 노란색원 1)만약 k=6으로 하면 별은 노란색원에 속하게 된다   (보라색원 2   아래는 IRIS 데이터셋의 샘플from sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.metrics import classification_report, confusion_..

Naïve Bayes (나이브 배이스) Classifier - ROC curve

ROC ( Receiver Operating Characteristic) AUC( Area Under the Curve) score 는 binary classifiers의 퍼포먼스 측정에 유명한 메트릭스이다. 평가를 위해선 ROC curve의 밑쪽 면적을 측정하면 다양한 결정 쓰레시홀드에서의 classifier의 평가를 보여준다. ROC curve는 Y축엔 True Positive rate(TPR=Recall), X축엔 False Positive rate(FPR) 를 플롯- TPR : 스팸메일에 대해 스팸이라 판단하는 비율- FPR : 정상메일에 대해 스팸이라 판단하는 비율 binary classifier는 0.5 를 기준으로 판단을 한다. 만약 이 기준(결정 쓰레시홀드)을 임으로 0.1, 0.3, 0...

Naïve Bayes (나이브 배이스) Classifier - 실전 2

import numpy as npimport pandas as pddata_path = 'https://github.com/vandit15/Movielens-Data/blob/master/ml-1m/ratings.dat?raw=true'df = pd.read_csv(data_path, header=None, sep='::', engine='python')df.columns = ['user_id', 'movie_id', 'rating', 'timestamp'] n_users = df['user_id'].nunique()n_movies = df['movie_id'].nunique()def load_user_rating_data(df, n_users, n_movies):    data = np.zeros([n..

Naïve Bayes (나이브 배이스) Classifier - 실전 1

아래와 같이 X_train 과 Y_train 을 가지고 학습을 한 뒤 X_test 가 Y 일지 N 일지 분류하고자 하자.X_train = np.array([  [0, 1, 1],                                 [0, 0, 1],                                 [0, 0, 0],                                 [1, 1, 0]] )Y_train = ['Y', 'N', 'Y', 'Y']X_test = np.array([ [1, 1, 0] ]) Naïve Bayes (나이브 배이스) Classifier 에서 설명한 것 처럼 다시 구성을 하면 아래와 같다.'Y' 의 총수는 3개이고 'N' 의 총수는 1개이다. 전체는 4개의 데이터...