ML 7

파이썬 부동소수점 문제 회피하기

파이썬에도 지긋지긋한 부동소수점 문제가 당연히 존재한다. 예를 들면, def func(x): return x - 0.1 func(1.2) 이것의 결과값은 1.1 이 나와야 하지만 실제로는 1.0999999999999999 가 출력된다. Decimal 모듈을 사용하여 해결한다. from decimal import Decimal def func(x): return float(Decimal(str(x)) - Decimal(str(0.1))) func(1.2) 주의할 것은, Decimal() 인자에 float 를 직접 넣으면 같은 오류가 발생하니까 의미가 없고 string 타입으로 변환해야 한다는 것.

ML 2022.05.18

KLinearRegressor 첫 걸음

KNeighborsRegressor 의 문제점: 기존 학습 데이터 근처에서 문제가 나오면 답을 잘 찾아 주지만, 그 범위를 벗어나면 답이 없다. 가령, 생선의 길이를 10~50cm 범위만 학습시킨 후 200cm 짜리 생선의 정답을 달라고 하면 완전 엉뚱한 예측값이 나와 버린다. 해결 방법은 두 가지다. 200cm 범위까지 늘려 학습을 시키거나, KLinearRegressor 를 사용하거나... Linear Regressor 선형회귀는 y=ax+b 형식의 함수를 만족하는 a 와 b 를 찾는 모델이다. 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..

ML 2022.05.04

KNeighborsRegressor 첫 걸음

요약: X(단일 데이터 혹은 배열) 와 y(정답)로 1:1 매칭된 데이터들을 학습(fit) 시켜준 후, 테스트 데이터인 X' 를 주었을 때 기존 학습 데이터를 기반으로 가까운 정답을 내 뱉는다. KNeighborsClassifier 와의 차이점 : KNeighborsClassifier 의 경우는 기존의 학습 데이터들과 가까운 것들의 다수결로 하나를 정해 결과를 뱉는, 다시 말해 1 or 0 의 데이터를 돌려준다면(분류), KNeighborsRegressor 의 경우는 가까운 점들끼리의 평균값을 돌려준다.(회귀) 가령 0 이나 1 이 아니라 0.99521 같은 실수값을 돌려준다. 예를 들면, KNeighborsClassifier 는 빙어인지 도미인지 구분하기 위해 쓰인다면, KNeighborsRegress..

ML 2022.04.28

KNeighborsClassifier 첫 걸음

요약: X(단일 데이터 혹은 배열) 와 y(정답)로 1:1 매칭된 데이터들을 학습(fit) 시켜준 후, 테스트 데이터인 X' 를 주었을 때 기존 학습 데이터를 기반으로 가까운 정답을 내 뱉는다. 목표 : 생선의 너비(cm)와 무게(g)가 주어지면 도미와 빙어를 구분한다. 도미 데이터 (35세트) 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, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0] bream_..

ML 2022.04.17

Numpy 배열 미세정리

● 파이썬 기본문법에는 배열이란게 없다 (!!!) mylist = [[1,2,3],[10,20,30]] print(mylist) 출력: [[1, 2, 3], [10, 20, 30]] 요건 그냥 리스트. import numpy as np myarr = np.array([[1,2,3],[10,20,30]]) print(myarr) 출력: [[ 1 2 3] [10 20 30]] 이것이 Numpy 를 이용한 배열. (숫자 사이 콤마가 없다) ● 무슨차이? 리스트의 각 요소는 형식이 모두 달라도 되지만, 배열은 같은 형식이어야 하고 크기도 최초 만든 후 제한 받는다. 대신 빠르다. 리스트 배열 각 요소 형식이 달라도 된다. 같은 형식이어야 한다. 느리다. 빠르다. 사이즈를 마음대로 조절 가능하다. 사이즈는 고정된..

ML 2022.04.14