일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오블완
- 상속
- 데이터베이스
- 컴퓨터비전
- 컴퓨터구조
- JDBC
- 문자와식
- html/css
- 데이터분석
- 파이썬
- 티스토리챌린지
- 연습문제
- 자바스크립트
- 머신러닝
- 자바
- 중학수학
- 중학1-1
- c언어
- JSP
- 딥러닝
- SQL
- 자바스크립트심화
- 개발일기
- 혼공머신
- 정보처리기사실기
- JSP/Servlet
- 자바 실습
- 정보처리기사필기
- 디버깅
- CSS
- Today
- Total
목록머신러닝 (93)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
아침에 AICON에 가기 위해 버스를 타고 가다가 담임선생님이 오늘 시험을 본다고 해서 다시 집으로 왔다. 그리고 지금 시험을 보는 중인데 나중에 어떤 문제였는지 알 수 있도록 시험을 푸는 모든 과정도 학습일지에 올려보기로 했다.전에도 몇 가지 과목 시험을 봤었는데 그건 정리하지 않았더니 언제 다시 정리하게 될지 모르겠다. 뭐든 바로 하는 게 좋기도 하고, 시험도 하나의 공부의 일종이니 기록을 해본다. 머신러닝 문제 1번 문제 1번 문제를 풀다가 정리할 생각이 나서 이 문제의 순서는 거의 정답에 가깝다. 1번 문제는 별로 어렵지 않았다. 2번 문제 ㄱ은 예측을 하는 거니 지도학습, ㄴ은 정보 없이 특징을 도출하는 거니까 비지도학습 같다. 이 내용을 정리해 보면 다음과 같다. 지도학습..
마지막까지 힘내서 달려보자. 비지도 학습 마지막 단원이다. 주성분 분석 실습해 보기 주성분 분석은 데이터가 있는 분산이 큰 방향을 찾는 것으로 이해할 수 있다. 분산은 데이터가 널리 퍼져있는 정도를 말한다. 분산이 큰 방향이란 데이터를 잘 표현하는 어떤 벡터이다. 주성분 벡터는 원본 데이터에 있는 어떤 방향이다. 따라서 주성분 벡터의 원소 개수는 원본 데이터셋에 있는 특성 개수와 같다. 원본 데이터는 주성분을 사용해 차원을 줄일 수 있다. 예를 들면, 다음과 같이 샘플 데이터 s(4, 2)를 주성분에 직각으로 투영하면 1차원 데이터 p(4.5)를 만들 수 있다.주성분은 원본 차원과 같고 주성분으로 바꾼 데이터는 차원이 줄어든다는 점을 꼭 기억하자. 첫 번째 주성분을 찾은 다음 이 벡터에 수직이고 ..
이어서 k-평균에 관한 공부를 진행해 보겠다. k-평균 실습해 보기 먼저 파일을 준비하고 k-평균 모델을 훈련하기 위해 (샘플 개수, 너비, 높이) 크기의 3차원 배열을 (샘플 개수, 너비x높이) 크기를 가진 2차원 배열로 변경한다.KMeans 클래스에서 설정할 매개변수는 클러스터 개수를 지정하는 n_clusters이다. 여기서는 클러스터 개수를 3으로 지정했다. 비지도 학습이므로 fit() 메서드에서 타깃 데이터를 사용하지 않겠다. 군집된 결과는 KMeans 클래스 객체의 labels_ 속성에 저장된다. labels_ 배열의 길이는 샘플 개수와 같다. n_clusters=3으로 지정했기 때문에 labels_ 배열의 값은 0, 1, 2 중 하나이다. 레이블값 0, 1, 2와 레이블 순서에는 어떤..
머신러닝 두 번째 학습 이제 비지도 학습 단원만 남아있다. 먼저 군집 알고리즘에 대해서 공부해보려고 한다. 군집 알고리즘 실습해 보기 과일 데이터를 다운로드한다. 처음에는 이 코드를 잘못 써서 몇 번 오류가 났다. 숫자 0이 아니라 영문자 O임을 주의해야 한다. 다운을 받으면 이렇게 sample_data 밑에 파일이 하나 생성된다.코드 셀에서 '!' 문자로 시작하면 이후 명령을 파이썬 코드가 아닌 리눅스 셀 명령으로 이해한다. wget 명령은 원격 주소에서 데이터를 다운로드하여 저장한다. -0 옵션에서 저장할 파일 이름을 지정할 수 있다. 이제 데이터를 로드하여 넘파이와 맷플로립 패키지를 임포트했다. 파일을 로드한 후 배열의 크기도 확인했다. 이 배열의 첫 번째 차원(300)은 샘플의 개수를 ..
5단원의 마지막 장 트리 앙상블 학습을 시작해 본다. 이 단원만 마치고 오늘은 머신러닝 공부를 그만하려고 한다. 트리의 앙상블 실습해보기 랜덤 포레스트는 랜덤하게 선택한 샘플과 특성을 사용하기 때문에 훈련 세트에 과대적합되는 것을 막아주고 검증 세트와 테스트 세트에서 안정적인 성능을 얻을 수 있다. 이전에 했던 거처럼 와인 데이터셋을 판다스로 불러오고 훈련 세트와 테스트 세트로 나눈다. 그런 다음 cross_validate() 함수를 사용해 교차 검증을 수행한다. 매개변수를 -1로 지정하여 최대한 병렬로 교차 검증을 수행한다. 또 return_train_score 매개변수를 True로 지정하면 검증 점수뿐만 아니라 훈련 세트에 대한 점수도 같이 반환한다.출력된 결과를 보면 훈련 세트에 다소 과대적합..
내용을 이해하고 학습을 한다는 게 정말 신나는 일인 것 같다. 점심시간이 되었지만 난 별로 밥을 먹고 싶은 생각이 없이 공부를 더 하고 싶다.조금만 더 하고 식사를 해야지! 교차 검증과 그리드 서치 실습해보기 검증 세트는 테스트 세트를 사용하지 않고 이를 측정하는 훈련 세트를 또 나누는 것을 말한다. 앞에서 우리는 전체 데이터 중 20%를 테스트 세트로 만들고 나머지 80%를 훈련 세트로 만들었다. 이 훈련 세트 중에서 다시 20%를 떼어 내어 검증 세트로 만든다. 먼저 판다스로 CSV 데이터를 읽는다. 그다음 class 열을 타깃으로 사용하고 나머지 열은 특성 배열에 저장한다. 이제 훈련 세트와 테스트 세트를 나누는데, 훈련 세트의 입력 테이터와 타깃 데이터를 train_input과 train_..
이번 시간에는 화이트 와인은 분류하는 트리 알고리즘에 대해서 학습해보려고 한다. 결정 트리 실습해 보기 먼저 와인 샘플 데이터셋을 불러와야 한다. 와인 데이터셋을 데이터프레임으로 제대로 읽었는지 확인하기 위해 처음 5개의 샘플을 확인해 본다.처음 3개의 열(alcohol, sugar, pH)은 각각 알코올 도수, 당도, pH값을 나타낸다. 네 번째 열(class)은 타깃값으로 0이면 레드 와인, 1이면 화이트 와인이다. 레드 와인과 화이트 와인을 구분하는 이진 분류 문제이고, 화이트 와인이 양성 클래스이다. 즉 전체 와인 데이터에서 화이트 와인을 골라내는 문제이다. 먼저 info() 메서드로 각 열의 데이터 타입과 누락된 데이터가 있는지 확인했다. 출력 결과를 보면 총 6497개의 샘플이 있고..
이번에는 확률적 경사 하강법에 대한 실습을 다시 한번 진행해 볼 것이다. 아침 공부 시간이 1시간 반 정도 남아있는데 그동안에 2개의 소단원은 마치려고 한다.복습을 할 때는 신기하게도 처음 공부할 때의 절반의 시간도 걸리지 않는 것 같다. 확률적 경사 하강법 실습해보기앞의 이론 부분은 모두 학습하여 정리했으므로 생략한다. 여기까지는 이전에 배웠던 내용을 반복하는 거라 설명하지는 않겠다. 이전에 했던 것처럼 무슨 경고창이 떴다. 이것은 확률적 경사 하강법을 사용하여 모델을 학습할 때 발생하는 ConvergenceWarning입니다. 이 경고는 최대 반복 횟수(max_iter)에 도달했지만 모델이 수렴하지 못했다는 것을 의미한다. 즉, 모델이 최적의 해를 찾기 전에 학습이 종료되었다는 뜻이다. ..
조금 전까지는 어제치 학습 분량을 정리했었고 지금부터 쓰는 학습일지는 오늘 분량이다. 오늘도 12개 이상의 학습일지를 올리며 공부를 진행해 볼 것이다.4장의 첫번째 단원인 로지스틱 회귀에 대해서 공부해 볼 것이다. 로지스틱 회귀 실습해보기 인터넷에서 직접 CSV 데이터를 읽어 들인다. 판다스의 read_csv() 함수로 CSV 파일을 데이터프레임으로 변환한 다음 head() 메서드로 처음 5개 행을 출력했다.어떤 종류의 생선이 있는지 알기 위해 Species 열에서 고유한 값을 추출한다. 여기에는 생선의 종류가 담겨있다. 이 데이터프레임에서 Species 열을 타깃으로 만들고 나머지 5개 열은 입력 데이터로 사용한다. 이제 데이터를 훈련 세트와 데이터 세트로 나눈다. 그리고 훈련 세트와 테스트 ..
다중 회귀에 대해서 좀더 학습해보기로 한다. 특성 공학과 규제 실습해보기 판다스를 사용해 농어 데이터를 인터넷에서 내려받아 데이터프레임에 저장하겠다. 그다음 넘파이 배열로 변환하여 선형 회귀 모델을 훈련한다. 판다스를 읽는 방법은 판다스의 read_csv() 함수에 주소를 넣어주는 것이 전부이다.타깃 데이터는 이전과 같은 방식으로 준비한다. 이 데이터를 사용해 새로운 특성을 만들겠다. fit() 메서드는 새롭게 만들 특성 조합을 찾고 transform() 메서드는 실제로 데이터를 변환한다. 변환기는 입력 데이터를 변환하는데 타깃 데이터가 필요하지 않다. 여기서는 2개의 특성(원소)을 가진 샘플 [2, 3]이 6개의 특성을 가진 샘플 [1. 2. 3. 4. 6. 9.]로 바뀌었다.Polynom..