본문 바로가기
[머신러닝 이론 정리] Decision Tree 부분 대학원 머신러닝 과목을 시험을 대비하기 위해서 기초 내용들을 질문형식으로 만들어 공부하였습니다. 이후에 공부하면서 알게 되는 내용도 계속 수정하여 추가 할 예정입니다. Decision Tree는 어디에 쓰이나? Classification, Regression 문제에 둘 다 사용가능하지만 분류 문제에 더 성능이 좋다. 굉장히 실용적이고 직관적인 방법으로 비전공자도 이해하기 쉬워 회사의 실무에 많이 사용된다고 합니다. Decision Tree 구성요소는? attribute, attribute value, class로 이루어 진다. 어떤 특성을 기준으로 할것인가(attribute: ex 날씨), 특성에는 어떤 값들이 있는가(attribut value: ex sunny rain등), 어디로 분류되는가(class.. 2021. 5. 1.
[머신러닝] Decision Tree, KNN, logistic Regression 실습 with python, sklearn 코로나 데이터를 활용해서 분류 문제를 실습하였다. 데이터에서 변수들이 Y값과 값는 상관관계가 매우 낮아서 성능이 좋지 않았다. 다양한 전처리를 하더라도, 성능이 좋지 않았다. DATA & Library LOAD¶ In [1]: import numpy as np import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import f1_score from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_s.. 2021. 4. 19.
[머신러닝] Linear Regression, Lasso, Ridge with python,sklearn 공정데이터를 전처리하여 Linear Regression, lasso, Ridge 모델들로 성능을 최적화 시키는 실습이였다. 데이터 전처리를 연습하고, K-fold, pca 등 활용해 볼 수 있는 실습이였다. 성능을 높이기 위해서 중요했던 것은 다음과 같다. 1. 데이터 전처리 (시계열 특성 반영) 2. K-fold로 성능 검증 ( 일반적인 랜덤 샘플링 이용한 방법 , cross-validation 모듈 결과가 조금씩 달랐다.) 3. PCA 차원 수 정하기 4. Ridge 와 Lasso의 alpha값 이해하고 최적의 값 찾기 DATA LOAD¶ In [12]: import numpy as np import pandas as pd from sklearn.linear_model import LinearRegr.. 2021. 4. 19.
[딥러닝 실습] MNIST backpropagation 최고 성능 찾아보기 (learning rate, epoch 편) 이번 과제는 정해진 2-layer에서 learning rate과 epoch를 어떻게 조절하면 가장 높은 결과가 나오는지 실험해보고 성능을 최대로 하는 epoch와 learning rate을 찾는 것 이였습니다. 사실 과제를 할 당시에는 노가다라고 생각했으며, 과연 도움이 될까를 생각하며 1주일 내내 컴퓨터를 돌려봤는데 과제를 수행하고 나서 달라진 점은 있는 것 같습니다. epoch와 learning rate을 어떻게 해야 적당할까?? 라는 질문에 "음.... 조금씩 키워보거나 작게 해보면 되겠지" 에서 "x만큼 정도 키워보거나 x만큼 변화를 줘보자" 로 비슷한거 같지만 조금이나마 어떤 값들로 움직여야 하는지 감을 잡을 수 있었습니다. 2020. 7. 4.
[딥러닝 실습] numerical_gradient 경사하강법 def numerical_gradient(f,x): h = 1e-4 grad = np.zeros_like(x) it = np.nditer(x, flags = ['multi_index'],op_flag= ['readwrite']) while not it.finished: idx = it.multi_index tem_val = x[idx] x[idx] = float(tmp_val)+h fxh1 = f(x) x[idx] = tem_val -h fxh2 = f(x) grad[idx] (fxh1 = fxh2) / (2*h) x[idx] = tmp_val it.iternext() return grad 2020. 4. 24.
[딥러닝 실습] Loss function 좋은 신경망이란 무엇일까? loss function이 작은것도 하나의 답이 될 수 있을것같다. 1. MSE(평균 제곱 오차) 2. 교차 엔트로피 오차 에 대해서 공부했다. 수식은 생략하겠다. import numpy as np #평균 제곱 오차 MSE def mean_squared_error(y,t): return 0.5 * np.sum((y-t)**2) #y는 나의 예측값 t는 실제값이라고 볼 수 있다. t = [0,0,1,0,0,0,0,0,0,0] y = [0.1,0.05,0.1,0.1,0.1,0.1,0.1,0.1,0.0,0.5] ans = mean_squared_error(np.array(y),np.array(t)) print(ans) #0.56125 #교차 엔트로피 오차 cross entropy e.. 2020. 4. 24.
[딥러닝 실습] MNIST 손글씨 인식 실습하기 손글씨 이미지들을 가져와서 인식하는 실습이다. 코드의 구성은 다음과 같다. 1. MNIST 글씨들을 다운 후 저장되어 있는 파일을 내가 원하는 형식으로 저장하기 import gzip import numpy as np fnames =['train-images-idx3-ubyte.gz','train-labels-idx1-ubyte.gz','t10k-images-idx3-ubyte.gz','t10k-labels-idx1-ubyte.gz'] with gzip.open(fnames[0],'rb') as f: train_image = np.frombuffer(f.read (),np.uint8,offset =16) with gzip.open(fnames[1],'rb') as f: train_label = np.fro.. 2020. 4. 18.
[딥러닝 실습] 활성화함수 Softmax 함수 기존의 함수는 0과 1를 구별하는 binary classification 일때 유용하게 쓰였다. 하지만 두개 이상의 classification을 할때 활용되는 함수가 바로 softmax이다. 위의 수식을 간단하게 요약해서 말하자면 "자신" 을 전체로 나눈것. 즉 확률이다. 따라서, 0< P 2020. 4. 14.
[딥러닝 실습] 활성화 함수 연습(step, sigmoid ,relu function) #활성화 항수(step fuction, sigmoid 그려보기) import numpy as np import matplotlib.pyplot as plt def step_function(x): y = x>0 return y.astype(np.int) #astype(np.xx)는 xx형태로 타입을 바꿔주는것 def sigmoid(x): return 1/(1 + np.exp(-x)) def rulu(x): return np.maximum(0,x) x = np.arange(-5.0,5.0,0.01) y1 = step_function(x) y2 = sigmoid(x) plt.plot(x,y1,"r",label ="step function") plt.plot(x,y2,"b",label ="sigmoid func.. 2020. 4. 14.