본문 바로가기

KHUDA 활동 아카이브/Machine Learning 기초

(6)
Ch 6. 비지도 학습 지금까지는 훈련데이터가 실제로 어떤 결과인지를 알려주는, 즉 지도학습을 공부해봤다. 그렇다면, 컴퓨터에게 데이터를 주는데, 그 데이터가 우리도 무엇인지 모르는 상황이라면 어떨까? 컴퓨터에게 데이터 라벨링을 해주지 않아도 자기 스스로 그 특징을 찾아 훈련데이터들을 분류할 수 있을까? 이를 ‘비지도 학습’이라고 부른다. 다음과 같은 상황을 가정하자. “나는 과일가게에서 일하고 있다. 과일들의 수요를 조사하기 위해, 손님들에게 가장 좋아하는 과일의 사진을 문자로 보내달라고 했다. 문자로 온 과일들의 사진을 분류해서, 어떤 과일을 손님들이 가장 좋아하는지 알고 싶다. 하지만, 어떤 과일 사진들이 올지 우리는 알지 못한다. 대충 예상은 가지만 말이다. 손님들이 보내준 과일 사진을 알아서 분류해주는 머신러닝 모델은..
Ch 5. 트리 알고리즘 앞서 다룬 회귀와는 또 다른 알고리즘을 알아보자. 이번 예시는 와인 분류이다. 알코올, 당도, pH를 이용해 레드 와인인지 화이트 와인인지 구분하는 것이다. 얼핏보면 특성이 3개이고 이진분류이므로, 특성 스케일 값을 표준점수로 전처리해서 로지스틱 회귀를 사용하면 해결될 것이라는 생각이 든다. 한번 해보면? import pandas as pd wine = pd.read_csv('https://bit.ly/wine-date') data = wine[['alcohol', 'sugar', 'pH']].to_numpy() target = wine[['class']].to_numpy() from sklearn.preprocessing import StandardScaler ss = StandardScaler() s..
Ch. 4 다중 분류 알고리즘 로지스틱 회귀 k-최근접 이웃 알고리즘을 이용해 다중분류 해보기 ex) 어떤 생선의 무게, 길이, 대각선 길이, 높이, 너비 값을 이용해 도미, 잉어, 송어, 대구, 농어, 강꼬치고기, 빙어 7종류의 생선 중 어떤 생선인지 맞춰보자. 늘 하던대로 , train_test_split을 이용해 훈련셋과 테스트셋을 분리하고 StandardScaler 변환기 클래스를 이용해 전처리까지. k-최근접 분류 클래스는 KNeighborsClassifier이다. fit 한 후 앞에 5개의 score값을 측정하니, 이렇게 확률이 나오긴 한다. 하지만 확률이 너무 이산적이다. 당연하다. k-최근접 분류에서 이웃을 3개로 한정지었기 때문. 그래서 분모가 항상 3이기에 위와 같은 0.6667 확률이 나온거. 연속적인 확률을 얻고..
Ch 3. 선형회귀 도미 - 빙어 : 두 생선 중 어떤 생선인지 판별하는 문제 도미와 빙어 각각을 클래스라고 부름 우리가 앞서 다룬 문제는 즉 클래스 분류이다. 그러면 클래스 분류말고 또 있어? 있다. 우리는 지금 머신러닝에 대해 다루고 있다. 머신러닝은 크게 지도학습과 비지도학습으로 나뉜다. 우리는 지도학습 중에서도 클래스분류에 대해 살펴본것이다. 자, 그럼 지도학습에 ‘분류’말고 또 뭐가 있나? 맞다. 회귀다. 우리는 이제 회귀에 대한 예시를 살펴볼것이다. —- 우리 생선가게는 이제 도미, 빙어 뿐만 아니라 농어도 팔기 시작헸다. 보통 생선들도 그렇듯이, 우리 가게도 농어를 1kg에 얼마 형식으로 팔려고 한다. 그런데 지금 좀 큰일났다. 농어를 공급해주는 공급처에서 농어의 무게를 잘못쟀다고 연락이 온 것이다. 농어의 길..
Ch 2. 데이터 다루기 - 수상한 생선을 조심해라! 이 글은 이전 글인 " Ch 1. 나의 첫 머신러닝 - 이 생선의 이름은 무엇인가요? " 에서 이어지는 내용입니다. 앞에서 우리는 도미와 빙어를 구분해주는 머신러닝을 직접 개발해봤습니다. k-최근접 알고리즘 이라고 불리는걸 활용했죠. 여기서 간단히 용어를 정리해보겠습니다. 입력 : 주어지는 입력 데이터를 의미. 앞의 예시에서는 [길이,무게] 한 쌍이 입력 데이터였습니다. 타깃 : 주어진 입력의 정답을 의미. 앞의 예시에서는 도미가 1, 빙어가 0으로 표기한게 입력에 대한 정답, 즉 타깃이었구요. 훈련 데이터 : 입력과 타깃을 통틀어 부르는 용어. 앞의 예시에서는 " [25.4, 242.0] 는 1 " 이라는게 훈련데이터가 되겠네요. 특성 : 데이터를 표현하는 하나의 성질 앞의 예시에서는 '무게, 길이'가..
Ch 1. 나의 첫 머신러닝 - 이 생선의 이름은 무엇인가요? 어떤 분야를 처음 접할 때, 가장 먼저 소개하는 것은 역시 역사입니다. 역사는 물론 중요하죠. 하지만 우리의 주요 관심사는 역사가 아닌, "인공지능이 무엇인지, 어떻게 구현되는지" 일 것입니다. 이에 대해 간략하게 설명하고 넘어가겠습니다. 인공지능 사람처럼 '학습' 하고, '추론' 할 수 있는 지능을 가진 시스템을 의미합니다. 머신러닝 이 인공지능의 '지능' 을 구현하기 위한 분야를 의미합니다. 즉, 인공지능을 기술적으로 구현하는 분야가 머신러닝인 것입니다. 우리의 목적은 최종적으로 인공지능을 구현해보는 것입니다. 그렇다면 당연히 머신러닝을 사용해야겠죠? 현재 이 머신러닝을 가장 구현하기 쉬운 언어가 파이썬 입니다. 왜냐하면, 파이썬 내에 있는 사이킷런(scikit-learn) 이라는 라이브러리를 이용하..