8월, 2023의 게시물 표시

[머신러닝] 다중 회귀

이미지
다중 회귀 다중 회귀란? 하나 의 특성으로 선형 회귀 모델 을 훈련 시키는 것을 선형 회귀 라고 부른다. 이때 여러개 의 특성을 사용하는 선형 회귀 를 다중 회귀(multiple regression) 라고 부른다. 선형 회귀(Linear Regression) 아래 마인드 맵에 나와있는 것 처럼  선형 회귀 는  지도 학습 의  대표적인   회귀   알고리즘 이다. (Machine Learning -> Unsupervised Learning -> Linear Regression) 선형 회귀 는 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾는다. 특성 이 하나인 경우 어떤 직선을 학습하는 알고리즘이다.  특성 공학이란? 다중 회귀를 사용하기 위해서 3개의 특성(length, height, width)를  사용 할 거다. 이때 3개의 특성을 각각 제곱 하여 추가한다. 또한 각 특성을 서로 곱해서 새로운 특성을 만들 거다. 이처럼 기존 특성을 사용하여 새로운 특성을 만들어내는 작업을 특성 공학(feature engineering) 이라고 부른다. 데이터 준비 CSV 를 불러와서 3개의 특성을 준비하자. pandas 는 데이터 분석 라이브러리다. 넘파이와 비슷한 다차원 배열을 다룰 수도 있고 더 많은 기능을 제공한다.  또한 CSV 파일을 가져와 데이터 프레임 을 만들 수 있다. import pandas as pd df = pd.read_csv( 'https://bit.ly/perch_csv_data' ) perch_full = df.to_numpy() 아래 링크가 CSV 파일의 내용이다. https://raw.githubusercontent.com/rickiepark/hg-mldl/master/perch_full.csv 타깃 데이터

[머신러닝] 다항 회귀

이미지
다항 회귀 선형 회귀란? 다항 회귀 를 알아보기 전에 선형 회귀 부터 알아보자. 선형 회귀 는 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾는다. 특성 이 하나인 경우 어떤 직선을 학습하는 알고리즘이다.  다항 회귀란? 다항식 을 사용하여 특성과 타깃 사이의 관계를 나타낸다. 이 함수는 비선형 일 수도 있지지만 선형 회귀로 표현 가능하다. 다항식 을 사용한 선형 회귀 를 다항 회귀 라고 부른다. 선형 회귀로 데이터 예측 선형 회귀로 훈련 세트 범위 밖 데이터 예측을 한 그래프다. 하지만 산점도 를 보면 직선 보다는 곡선 의 가깝다. 이때  다항 회귀 를 사용하면 최적의  곡선 을 찾을 수 있다. 다항 회귀 사용을 위한 데이터 준비 다항 회귀 알고리즘을 사용하기 위해 데이터를 준비하자. import numpy as np height = np.array([ 10.0 , 11.0 , 12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 17.0 , 18.0 , 19.0 , 20.5 , 21.0 , 22.0 , 23.0 , 24.0 , 25.0 , 26.0 , 27.5 , 28.0 , 29.0 , 30.0 , 31.0 , 32.0 , 33.0 , 34.0 , 35.0 , 36.0 , 37.0 , 37.5 , 38.0 , 39.0 , 40.0 , 41.0 , 42.0 , 43.0 , 44.0 , 45.0 , 46.0 , 47.0 , 48.0 , 49.0 , 50.0 , 51.3 , 52.0 , 53.0 , 54.0 , 55.0 , 56.0 , 57.0 , 58.0 ]) weight = np.array([ 100.0 , 101.9 , 102.0 , 103.0 ,

[머신러닝] 선형 회귀

이미지
선형 회귀 선형 회귀(Linear Regression) 아래 마인드 맵에 나와있는 것 처럼  선형 회귀 는  지도 학습 의  대표적인   회귀   알고리즘 이다. (Machine Learning -> Unsupervised Learning -> Linear Regression) 선형 회귀 는 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾는다. 특성 이 하나인 경우 어떤 직선을 학습하는 알고리즘이다.  K-최근접 이웃 회귀의 문제점 선형 회귀에 대해 알아보기 전에 K-최근접 이웃 회귀의 문제점을 알아보자. 아래 예제를 복붙해서 한번 실행해 보길 바란다. import numpy as np height = np.array([ 10.0 , 11.0 , 12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 17.0 , 18.0 , 19.0 , 20.5 , 21.0 , 22.0 , 23.0 , 24.0 , 25.0 , 26.0 , 27.5 , 28.0 , 29.0 , 30.0 , 31.0 , 32.0 , 33.0 , 34.0 , 35.0 , 36.0 , 37.0 , 37.5 , 38.0 , 39.0 , 40.0 , 41.0 , 42.0 , 43.0 , 44.0 , 45.0 , 46.0 , 47.0 , 48.0 , 49.0 , 50.0 , 51.3 , 52.0 , 53.0 , 54.0 , 55.0 , 56.0 , 57.0 , 58.0 ]) weight = np.array([ 100.0 , 101.9 , 102.0 , 103.0 , 104.0 , 105.0 , 106.0 , 107.0 , 108.0 , 109.0 , 110.0 , 110.0 , 111.0 , 120.0 ,

[머신러닝] K-최근접 이웃 회귀 개념과 예제

이미지
K-최근접 이웃 회귀 개념과 예제 K-최근접 이웃 알고리즘 지도 학습 알고리즘은 분류 와 회귀 로 나뉜다. K-최근접 이웃 분류(K-NN Classification) K-최근접 이웃 분류는 새로운 샘플(초록색 원)이 주어졌을 때 가장 가까운 K개의 샘플들을 보고 샘플이 속하는 클래스를 판단하는 알고리즘이다. K-최근접 이웃 회귀(K-NN Regression) K-최근접 이웃 회귀는 새로운 데이터를 클래스 중 하나로 분류하는 것이 아닌 임의의 수치를 예측하는 알고리즘이다. 회귀 : 두 변수 사이의 상관관계 를 분석하는 방법 아래 그래프를 보자. 분류와 같이 예측 하려는 샘플에 가장 가까운 K개의 샘플을 선택한다. 하지만 회귀 이므로 주변의 샘플들은 어떤 클래스(그룹)가 아닌 임의의 수치다. 따라서 새로운 샘플(주황색 별)을 예측 할 때는 주변의 수치들의 평균을 구하면 된다.  주황색 별 = (30 + 30 + 2) / 3  계산에 따라 새로운 샘플의 예측 타깃값은 26.6666  이 된다. 데이터 준비하기 이제부터 파이썬에서 K-최근접 이웃 회귀 알고리즘을 사용해 모델을 훈련 시켜 보자. 우선 데이터를 준비 하자. height를 보고 weight를 예측 하도록 해야 하므로 height가 특성이 되고 weight가 타깃이 된다. import numpy as np height = np.array([ 10.0 , 11.0 , 12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 17.0 , 18.0 , 19.0 , 20.5 , 21.0 , 22.0 , 23.0 , 24.0 , 25.0 , 26.0 , 27.5 , 28.0 , 29.0 , 30.0 , 31.0 , 32.0 , 33.0 , 34.0 , 35.0 , 36.0 , 37.0 , 37.5 , 38.0 ,