머신러닝

머신러닝

Tensorflow Reproducible Result

Reproducible Result? 코랩에서 tensorflow를 활용한 CNN 모델 학습을 진행하다가, 동일한 레이어 및 설정을 해도 결과마다 loss 및 accuracy가 다르게 나오는 경우를 보았다. 구글링을 해보니, random seed 및 gpu 연산에 따라서 결과가 다르게 나오는 것이 원인이었다. 레이어나 설정에 따라 loss 및 accuracy가 어떻게 변화되는지 확인하고 싶었고, 이에 따라 재현가능한 결과가 나오도록 설정하고 싶었다. 이에 따라 몇가지 설정을 적용해서, 동일한 레이어 및 설정에서 동일한 결과가 도출되는 것을 확인하였다. 필요한 설정 tensorflow의 utils에서 set_random_seed 메서드를 호출하여 시드값을 설정한다. tensorflow의 config에서 e..

머신러닝

딥러닝 개념 정리

딥러닝 다층이 아니라 심층을 의미함 모델은 학습된 파라미터의 집합이라고 할 수 있음 MLP (Multi Layer Perceptron) sklearn의 neural_network 층이 3개만 있음(input, hidden, output) 오차역전파 목적 : 수치미분을 수행하지 않고, 학습에 필요한 편미분값을 획득 원리 체인룰(연쇄법칙) : 합성 함수의 미분은 합성 함수를 구성하는 개별 함수 미분의 곱으로 처리 역전파 : 파라미터 업데이트를 위해 출력층의 오차값을 은닉층으로 전파 DNN 딥러닝 모델링 이슈 Vanishing Gradient → Activation 함수 sigmoid의 미분값이 0~0.25의 범위라서, 은닉층 증가에 따라서 미분값이 0이 되는 현상 relu, tanh(hyperbolic ta..

머신러닝

Classification 코드 정리

라이브러리 불러오기 import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from datetime import datetime from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier, AdaBoostCl..

머신러닝

Regression 코드 정리

라이브러리 불러오기 import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_diabetes from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import train_test_split from datetime import datetime from sklearn.linear_model import LinearRegression from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble im..

머신러닝

머신러닝 개념 정리

용어정리 AI 사람이 만든 예측모델 머신러닝, 딥러닝 머신러닝 회귀(Regression)와 분류(Classification) Train, Test, Validation 모델링 목적 : 일반화된 모델을 만드는 것 학습에 사용되지 않은 데이터에서도 비슷한 성능 함수형 - 경사하강법 접선의 기울기 or 편미분값 선형회귀(Linear Regression) y가 숫자 단순회귀 (Simple Regression), 다항회귀 (Polynomial Regression), 다중회귀 (Mutiple Regression) 함수 및 평가는 MSE(Mean Squared Error) MSE 작으면 데이터의 분포와 특징을 설명한다 Capacity : 데이터에 대한 설명력 파라미터 업데이트 상관계수를 활용한 EDA 인코딩 - La..

머신러닝

One Hot Encoding

개념 범주형 변수를 변환할때 사용하는 인코딩 방법으로, 0 또는 1의 값을 가진 하나 이상의 새로운 특성으로 변환한다. 혈액형에 따른 분류할 때, 0~3이 아니라 (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1)의 형태로 나누는 것을 의미한다. 숫자의 크고 작음에 따른 중요도를 없애기 위하여 사용된다. 다중공선성 문제가 있어서, n개의 변수보다는 n-1개의 변수를 만드는 것이 좋다. 혈액형의 변수를 4개가 아니라 3개로 처리하여, (1, 0, 0), (0, 1, 0), (0, 0, 1), (0, 0, 0)의 형태로 나타내는 것이다. 코드 라이브러리 불러오기 import numpy as np import pandas as pd import seaborn as..

머신러닝

numpy, pandas 코드 정리

라이브러리 및 데이터 불러오기 import numpy as np import pandas as pd Numpy 데이터 불러오기 items = np.array([[20, 12.34, True, "A"], [12, 34.1, False, "B"], [43, 55.3, True, "A"], [45, 64.2, False, "C"], [23, 65.1, False, "E"], [65, 22.3, True, "A"], [9, 44.1, True, "B"], [122, 67.1, False, "C"], [567, 34.2, False, "C"]], dtype=object) items 모양 출력 items.shape 모양 변경 new_items = items.reshape((1,36)) print("shape:", ..

머신러닝

Linear Regression

💡 아래의 코드는 코랩 환경에서 테스트되었습니다. 라이브러리 불러오기 코드 import numpy as np import seaborn as sns import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder, PolynomialFeatures from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error 데이터 불러오기 코드 DF = sns.load_dataset('mpg') DF.info() 데이터 전처리 코드 # nu..

머신러닝

이미지 분류 학습진행하기

1. 이미지 불러오기 1. 이미지 수집 및 분류 하나의 폴더 하위에, 여러 개의 폴더로 나누어서 이미지를 수집 및 분류한다. 폴더 구조 (식물 학습 정도에 따른 분류) resample 0 1 2 3 2. 라이브러리 불러오기 import matplotlib.pyplot as plt import numpy as np import os import PIL import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.models import Sequential 3. 이미지 불러오기 import pathlib fullPath = os.path.abspath("resample")..

'머신러닝' 카테고리의 글 목록
devskim