[DL 07-1] 인공 신경망
·
AI/혼공파 머신러닝+딥러닝
챕터 7과 8은 패션 MNIST 데이터셋을 사용할 것 이다. 이 데이터셋은 10종류의 패션 아이템으로 구성되어 있다.패션 MNIST 데이터는 워낙 유명하기 때문에 많은 딥러닝 라이브러리에서 이 데이터를 가져올 수 있는 도구를 제공한다. 텐서플로(TensorFlow)를 이용해 이 데이터를 불러올 것이다. 텐서플로도 코랩에서 바로 사용할 수 있다.keras.datasets.fashion_mnist 모듈 아래 load_data() 함수는 훈련 데이터와 테스트 데이터를 나누어 반환한다. 이 데이터는 각각 입력과 타깃의 쌍으로 구성되어 있다.훈련 데이터는 60000개의 이미지로 이루어져 있고 각 이미지는 28 * 28 크기이다. 타깃도 60000개의 원소가 있는 1차원 배열이다. 테스트 세트의 크기도 확인해보면 ..
[ML 06-1] 군집 알고리즘
·
AI/혼공파 머신러닝+딥러닝
타깃을 모르는 비지도 학습타깃을 모르는 사진을 종류별로 분류하려면 어떻게 해야할까? 타깃이 없을 때 사용하는 머신러닝 알고리즘을 비지도 학습(unsupervised learning)이라고 한다. 사람이 가르쳐 주지 않아도 데이터에 있는 무언가를 학습하는 것이다. 처음엔 데이터의 픽셀값을 이용해서 사진을 분류할 수 있겠다는 생각을 할 수 있을 것이다.과일 사진 데이터 준비하기다음은 사과, 바나나, 파인애플을 담고 있는 흑백 사진 데이터이다.이 배열의 첫번째 차원은 샘플의 개수를 나타내고, 두 번재 차원은 이미지 높이, 세 번째 차원은 이미지 너비이다. 각 픽셀은 넘파이 배열의 원소 하나에 대응한다. 즉 배열의 크기가 100 x 100이다.이 넘파이 배열은 흑백 사진을 담고 있으므로 0~255까지의 정숫값을..
[ML 05-1] 결정 트리
·
AI/혼공파 머신러닝+딥러닝
알코올 도수, 당도, pH를 이용해 화이트와인과 레드와인을 구분하는 task를 풀어보자.info() : 데이터프레임의 각 열의 데이터 타입과 누락된 데이터가 있는지 확인하는 데 유용.describe() : 열에 대한 간략한 통계를 출력. 최소, 최대, 평균값 등을 볼 수 있다. 여기서 알코올 도수와 당도, pH 값의 스케일이 다르니 이전에 했던 것처럼 사이킷런의 StandardScaler클래스를 사용해 특성을 표준화해야한다.점수가 높지 않다. 훈련 세트와 테스트 세트의 점수가 모두 낮으니 모델이 과소적합된 것 같다. 이 모델을 설명하기 위해 로지스틱 회귀가 학습한 계수와 절편을 출력해 보자.이렇게 보면 우리가 이 모델이 왜 저런 계수 값으로 학습했는지 정확히 이해하기 어렵다. 아마도 알코올 도수와 당도가..
[ML 04-2] 확률적 경사 하강법
·
AI/혼공파 머신러닝+딥러닝
경사 하강법은 경사를 따라 내려가는 방법을 말한다. 그럼 확률적이란 말은 무슨 뜻일까? 훈련 셋을 사용해 모델을 훈련하기 때문에 경사 하강법도 당연히 훈련 세트를 사용하여 가장 가파른 길을 찾을 것이다. 그런데 전체 샘플을 사용하지 않고 딱 하나의 샘플을 훈련 세트에서 랜덤하게 골라 가장 가파른 길을 찾는 것이다. 그다음 훈련 세트에서 랜덤하게 또 다른 샘플을 하나 선택하여 경사를 조금 내려가고 이런 식으로 전체 샘플을 모두 사용할 때까지 반복한다. 이처럼 훈련 세트에서 랜덤하게 하나의 샘플을 고르는 것이 확률적 경사 하강법이다. 모든 샘플을 다 사용했는데도 다 못내려왔다면 어떻게 할까? 훈련 세트에 모든 샘플을 다시 채워 넣는다. 그다음 다시 랜덤하게 하나의 샘플을 선택해 이어서 경사를 내려간다. 이렇..
[ML 04-1] 로지스틱 회귀
·
AI/혼공파 머신러닝+딥러닝
어떤 박스에 들어간 생선의 크기, 무게 등이 주어졌을 때 7개 생선에 대한 확률을 출력하려는 문제를 풀려고 한다. 이에 대해 k-최근접 이웃은 주변 이웃을 찾아주니까 이웃의 클래스 비율을 확률이라고 출력하면 되지않을까?라는 아이디어를 활용할 것이다. import pandas as pd fish = pd.read_csv('https://bit.ly/fish_csv_data') fish.head() 이 데이터 프레임에서 Species열을 타깃(정답값)으로 만들고 나머지 5개 열은 입력 데이터로 사용할 것이다([3]실행). 그리고 [5]실행 부분에서 훈련 세트와 테스트 세트로 나눈다. StandardScaler클래스를 사용해 훈련 세트와 테스트 세트를 표준화 전처리해주고 훈련 세트의 통계 값으로 테스트 세트도..
[ML 03-3] 특성공학과 규제 - 릿지(Ridge), 라쏘(Lasso)
·
AI/혼공파 머신러닝+딥러닝
이전 글에서 특성을 길이만 보니 일직선으로만 그래프가 그려서 성능이 좋지않아 길이를 제곱한 특성도 넣었더니 더 잘 예측하는 것을 확인할 수 있었다. 근데 여전히 훈련 셋보다 테스트 셋의 점수가 높았다.(underfitting) 이 문제를 해결하려면 제곱보다 더 고차항을 넣어야 할 것 같은데 얼만큼 더 고차항을 넣어야 할지모르고 수동으로 이렇게 고차항을 넣기도 힘들다. 그래서 가지고 있는 특성끼리를 서로 곱해서 또 다른 새로운 특성을 만드는 작업을 할 수 있다. 이 예제에서는 농어의 길이뿐만 아니라 농어의 높이와 두께도 함께 사용햇다. 그리고 3개의 특성을 각각 제곱하여 추가하고 각 특성을 서로 곱해서 또 다른 특성을 만들었다. 즉 '농어 길이 x 농어 높이'를 새로운 특성으로 만들 것이다. 이렇게 기존의..
[KNN, ML 03-2] 선형회귀(Linear Regression)
·
AI/혼공파 머신러닝+딥러닝
분류 (classification) - 몇 개의 클래스 중 하나를 분류 회귀 (regression) - 임의의 어떤 숫자를 예측 이전 글에서는 분류문제를 다뤘습니다. 이번엔 회귀문제를 다뤄보려하는데 회귀는 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 문제입니다. k-최근접 이웃 회귀의 방식에 대해 설명해보겠습니다. 예측하려는 샘플에 가장 가까운 샘플 k개를 선택 하여 이 수치들의 평균을 구하는 것입니다. import numpy as np perch_length = np.array( [8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0,..
[KNN 03-1] k-최근접 이웃 알고리즘 (데이터 전처리)
·
AI/혼공파 머신러닝+딥러닝
도미와 빙어를 구분하는 KNN모델을 만들려고 한다. 그런데 데이터의 형태에 따라 성능이 다르게 나오는 것을 다음의 과정들을 통해 알고 어떻게 성능을 높여 왔는지에 대해 작성할 것이다. fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0,..
doocong22
'AI/혼공파 머신러닝+딥러닝' 카테고리의 글 목록