반응형

공부/머신러닝 5

[ 머신러닝 프로그램 ] 선형 회귀 알고리즘, 다항 회귀 알고리즘

k-최근접 이웃의 한계 k-최근접 이웃 알고리즘은 가장 가까운 샘플을 찾아 타깃을 구한다. 그렇기 때문에 새로운 샘플이 훈련 범위를 벗어나면 기대하는 값이 안나올 수도 있다. 아래 코드는 k-최근접 이웃 회귀 알고리즘 코드이다. 실제로 여기에 100kg에 농어를 넣어도, 200kg의 농어를 넣어도 가까운 농어의 종류는 똑같기 떄문에 똑같은 값이 나온다. #k최근접 이웃 회귀 알고리즘 ver1 import matplotlib.pyplot as plt import numpy as np from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsRegressor perch_length = np.array..

공부/머신러닝 2023.02.17

[ 머신러닝 프로그램 ] k최근접 이웃 회귀 알고리즘

지도학습은 분류와 회귀로 두가지 종류가 있다. 분류는 샘플을 몇 개의 클래스 중 하나로 분류하는 문제이고, 회귀는 임의의 어떤 숫자를 예측하는 문제이다. k-최근접 이웃 회귀의 원리는 분류와 비슷하다. 샘플에 가장 가까운 샘플 k개를 선택하고 이들의 평균을 구하면 된다! 우리는 농어의 정보들을 분석해서 한 농어의 정보를 예측할 것이다. 농어의 산점도를 보자! 산점도를 보면 길이가 길어질수록 무게가 올라가는 것을 쉽게 알 수 있다. 이제 데이터들을 준비해서 알고리즘을 돌려보자! #데이터 세팅 train_input, test_input, train_target, test_target = train_test_split(perch_length, perch_weight) train_input=train_input..

공부/머신러닝 2023.02.13

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver3 - 데이터 전처리

버전2의 머신러닝 프로그램은 완벽해보인다. 하지만 어떤 도미를 넣으면 빙어라고 판단하기도 한다! 이는 데이터들이 덜 가공되었기 때문이다. 이런 부분을 데이터 전처리로 해결해보자! 기본 데이터 준비 #머신러닝 프로그램 ver3 import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split #도미의 정보 bream_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...

공부/머신러닝 2023.02.13

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver2 - 테스트 세트 추가

버전 1의 머신러닝 프로그램은 훈련 데이터 세트와 테스트 데이터 세트가 다르지 않았다. 이는 시험 보기전 답을 다 알려준 상태라고 볼 수 있다..! 테스트 세트 설정 보통은 훈련 데이터 세트에서 일부를 테스트 데이터로 활용한다. 근데 여기서 주의할 점은 훈련데이터에 한 종류의 데이터만 편향되면 안된다는 것이다. 전에 했던 데이터들을 다시 떠올려보면 도미가 35개 빙어가 14개 있었다. 여기서 도미 35개를 훈련세트로 하고 빙어 14개를 테스트세트로 하면 정확도는 0이 나올 것이다. 이를 샘플링 편향이라고 한다. 이를 방지하려면 훈련세트와 테스트세트를 잘 섞어줘야한다. 넘파이라는 라이브러리를 사용하면 이러한 작업을 편리하게 할 수 있다. 넘파이의 함수들을 사용하려면 리스트들을 넘파이배열로 바꿔줘야한다. 그..

공부/머신러닝 2023.02.11

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver1

생선 도미와 빙어를 구분하는 머신러닝을 만들어보자! 산점도 그리기 생선 도미의 데이터를 가져와서 산점도로 확인해보자! 파이썬에서 과학계산용 그래프를 그리는 대표적인 패키지는 matplotlib이다. matplotlib 안에 산점도를 그리는 함수 scatter()함수를 이용하여 도미의 길이와 무게에 대한 산점도를 그려보자! import matplotlib.pyplot as plt #도미의 정보 bream_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,..

공부/머신러닝 2023.02.10
반응형