반응형

AI 22

[Tensorflow 2.x / Keras] 기본 -3 MNIST 셋 활용 / 인공신경망-3 / Relu + Optimizer

지난 게시글에 이어 오늘은 Relu함수와 Optimizer에 대해 공부해보려고 한다. 자세한 내용은 생략하고 코드로 보자~! 1). 데이터셋 가져오기, 훈련세트, 테스트세트, 검증세트로 나누기 from tensorflow import keras (train_input, train_target), (test_input,test_target) = keras.datasets.fashion_mnist.load_data() from sklearn.model_selection import train_test_split train_scaled = train_input/255.0 train_scaled = train_input.reshape(-1,28*28)# -1 : 첫번째 차원은 그대로두고 나머지 차원만 바꾼다. ..

[Tensorflow 2.x / Keras] 기본 -2 패션 MNIST 데이터 셋 활용 / 인공신경망-2 / 다층

지난 번에는 인공신경망에 1층만 만들어서 훈련시켜보았다. 당연히 여러개의 층을 두어 복잡하게, 조금더 높은 성능을 낼수 있을거라고 예상했다. 이번에는 여러층의 모델을 만들어보려고 한다. 1). 기존과동일 하게 데이터셋을 준비한다. 추가로 검증셋까지... from tensorflow import keras (train_input, train_target), (test_input,test_target) = keras.datasets.fashion_mnist.load_data() from sklearn.model_selection import train_test_split train_scaled = train_input/255.0 train_scaled = train_input.reshape(-1,28*28)..

[Tensorflow 2.x / Keras] 기본 -1 패션 MNIST 데이터 셋 활용 / 인공신경망-1 /단층

MNIST데이터 셋중 패션 MNIST 데이터셋을 활용하여 Keras를 공부해보려고한다. 머신러닝 살짝 공부하다가 딥러닝으로 넘어온케이스... 헷갈리는 부분도 많지만 다시 복습하면 더 잘 와닿겠지! 딥러닝 부터는 코드를 직접 적으려고 한다. 1). 데이터셋 불러와 훈련세트, 테스트세트로 분류하기 from tensorflow import keras (train_input, train_target), (test_input,test_target) = keras.datasets.fashion_mnist.load_data() 2). 데이터셋 구조 확인 print(train_input.shape,train_target.shape) ==> (60000, 28, 28) (60000,) print(test_input.sh..

[Python] 머신러닝-11 점진적 학습을 위한 확률적 경사하강법 / 확률적 경사하강법이란?

이번에는 새롭게 확률적 경사하강법을 공부해보려고 한다. 이것은 딥러닝에서도 중요하게 자리잡고있는 개념이기 때문에 헷깔리면 다시 한번 보도록 하자. 1). 데이터 불러오기 2). 훈련세트와 테스트 세트 구분하기 3). 스케일 변환 여기까지는 전과 동일하다 4). 경사하강법 분류용 클래스인 SGDCassifier를 사용한다. loss = 'log' : 로지스틱 손실함수를 적용 max_iter = 훈련횟수지정 ==> 결과 : 훈련세트와 테스트세트의 정확도가 낮게 나온것을 확인 할 수있다. 예측하건데, 우리가 지정한 10번의 훈련횟수가 적었을수 도있다. 그렇다면 우리가 훈련을 추가적으로 진행하고자하면, 다시 훈련을 처음부터 해야되는가 라는 생각이들것이다. 하지만 경사하강법은 점진적 학습이 가능하여 추가적으로 훈..

[Python] 머신러닝 기초-10 Logistic Regression 과 이진분류 / 다중분류 활용

자 지난 게시글에 이어 이제 로지스틱 회귀로 이진분류/다중분류를 해보려고한다. 첫번째 이진분류 우리는 이진 분류를 통해 bream과 smelt인것만 골라내서 둘중에 어떤것에 더 높은 확률을 보이는지 확인해보자. 이진 분류를 사용하여 Bream | (또는) Smelt일때의 index들을 추출해 냈다. 그다음 훈련세트를 다시 만들어주었고, 해당 데이터를 로지스틱 회귀를 적용시켜보았다. 우리가 만든 모델이 예상한 데이터는 [Bream, Smelt, Bream, Bream, Bream,Smelt]이다. 이 예측값이 나온 이유 = 확률에 대해 확인하기 위해 lr.predict_proba()함수를 사용했다. ==> 결과 : 1열 : Bream과 2열 : Smelt 로 보았을때 어떤 확률로 예측데이터가 나온지 알수있..

[Python] 머신러닝 기초-9 로지스틱 회귀를 통해 물고기 분류 예제 / 로지스틱 회귀란?

생선의 크기, 무게, 높이 등 이 주어졌을때 7개의 생선에 대한 확률을 구하는 문제 데이터준비 물고기 종류를 타겟으로 잡는다. 물고기종류에 대한 확률을 내는 과제이니, 확인! 훈련세트와 테스트세트를 만든다. 각 데이터세틀를 표준화 전처리한다. =>Scaling K-최근접 이웃 분류기를 사용하여 정확도를 확인한다. 이웃의 개수는 대충 3개로 지정했다. 여기서 target 데이터에는 7가지 물고기 종류가 들어있다는것을 잊으면 안됀다.! 이렇게 여러개의 target / 2개이상의 클래스가 포함된 문제를 다중분류라고 한다. target 확인 = kn.classes_ 테스트세트 중 처음 5개의 테스트input에 대한 target(물고기종류) 예측 테스트 세트에서 뽑아낸 5개 샘플의 각 클래스별 확률을 추출해보자 ..

[Python] 머신러닝 기초-8 복습하고 가자 - > Ridge Regression Example 쭉 쳐보기

import numpy as np import pandas as pd df = pd.read_csv('https://bit.ly/perch_csv') perch_numpy = np.array(df) perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0, 115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0, 150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0, 218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0, 556.0,..

[Python] 머신러닝 기초-7 Ridge Regression 과 Lasso Regression을 통한 연습 / Ridge란? / Lasso란?

지난 시간에 이어 릿지회귀와 라쏘회귀를 공부해보도록 하자. 릿지회귀, 라쏘회귀란? 선형회귀 모델에 규제를 합쳐서 만든 모델 릿지 계수를 제곱한 값을 기준으로 규제 적용 라쏘 계수의 절대값을 기준으로 규제 적용 일반적으로는 릿지를 더 선호한다고한다. 1).릿지 릿지회귀를 적용하여 해당 모델의 정확도를 확인한다. 지난 시간에 -144로 테스트 세트의 정확도가 이상하게 나왔던것 기억해야한다. 상황 = 특성의 갯수(degree)를 5로 주었을때 훈련 세트 정확도는 99.999가 나왔는데, 테스트세트는 음수가 나왔었다. 이로써 많은 특성을 사용하여 테스트를 해도 문제없이(과대적합)되지않고 괜찮은 성능을 내고있는것을 확인 할 수있다. 릿지와 라쏘 모델을 사용할때 우리는 임의로 규제의 양을 조절할 수 있는데, 우리가..

[Python] 머신러닝 기초-6 다중회귀(Multiple Regression) 알고리즘을 통한 연습 / 다중회귀란?

비전공에 독학이라 접근성이 부족하지만... 간단하게 이해할 수 있도록 써놓으려고한다... 이전 시간 다항회귀에 이어 조금 더 복잡한 모델을 구현해보고자 한다. 이는 아직 우리가 개발한 모델이 부족함에 있어 더 많은 발전을 이룰 수 있도록 도와줄것이다.. 이때까지 공부했던것들의 흐름을 보면 당연히 3차원이 나올것이라고 예상했는데, 역시나 3차원이 나온다. 다중회귀란? 여러개의 특성을 이용한 선형회귀를 다중회귀라고 한다 쉽게 특성을 하나 이상 더 만들어서 선형회귀를 구현한 1차원 더 높아진 선형회귀이다. 예를들어 다항회귀는 y = ax²+bx+c로 y =무게 , x= 길이 두가지 특성만 사용했지만, 길이 x 무게라는 3번째 특성을 만들어내어 사용하는것이다. 우선 데이터를 가져올건데, Pandas를 이용하여 ..

[Python] 머신러닝 기초-5 선형회귀(Linear Regression) 알고리즘을 통한 연습 / 선형회귀란? 다항회귀란?

지금까지는 K-최근접 알고리즘을 통해 모델을 만들었고, 그 모델로 예측을 해보았다. 하지만 어느일정 길이를 넘어서면 예측되는 무게가 다 똑같이 나오는것을 봤을것이다. 이것은 가장 근접한 클래스의 평균을 내서 주는 최근접 알고리즘의 엄청난 단점이다. 이런점을 해결하기 위해 가장 보편적으로 사용하는것이 선형회귀 알고리즘이다. 선형회귀란? - 데이터를 가장 잘 표현할수 있는 직선을 구하는 알고리즘 우선 코드로 선형회귀 알고리즘을 한번 적용시켜 보자 1). 데이터 형변환 2). 선형회귀 알고리즘 사용하여 필요한 값을 구한다. 일차방정식 y = ax+b 여기서 선형회귀를 사용할때 종종 H(x) =Wx+b를 사용해서 표현했는데, 나도 이걸로 표현하겠다. Linear Resgression을 사용하면 그 객체 안에 W..

반응형