728x90
machine learning
10

[실습] Linear Regression(선형회귀)

필요한 라이브러리를 임포트한다. Import from keras import optimizers from keras.models import Sequential from keras.layers import Dense import numpy as np import pandas as pd import matplotlib.pyplot as plt 데이터 생성 임의의 데이터를 생성한다. X = np.linspace(0, 10, 10) Y = X + np.random.randn(*X.shape) 데이터 조회 어떤 데이터가 만들어졌는지 확인한다. for x, y in zip(X, Y): print((round(x, 1), round(y, 1))) [출력] (0.0, -0.3) (1.1, 1.5) (2.2, 2.9)..

선형회귀(Linear Regression)

선형회귀 모델이란 회귀 계수를 선형적으로 결합할 수 있는 모델을 의미한다. 여기서 회귀 계수란 무엇이고 선형적으로 결합한다는 것은 무슨 말인지 알아보겠다. 회귀 계수 간단하게 설명하면 1차 함수의 기본 형식인 y = ax+b에서 a 와 b를 회귀 계수라고 한다. 선형 결합 선형 결합(linear combination)은 선형 대수의 벡터의 합에서 나온 개념이다. 즉, 서로 다른 a와 b 벡터를 더해 새로운 벡터를 얻는 과정이라고 말할 수 있다. 또한 가중치를 곱한 후 더하는 것도 선형 결합이다. 예를 들어 2a + b, a + 2b와 같은 것도 a 벡터와 b 벡터의 합을 말한다. 다시 선형회귀에 대해 말하면 선형회귀는 회귀 계수들이 선형 결합된 함수를 뜻하여 이 함수를 통해 데이터의 값을 예측하는 것을 ..

[실습] KMeans (K 평균 군집화)

KMeans를 사용한 실습은 간단한 키, 몸무게에 대한 데이터를 생성하여 진행해보았다. Import import pandas as pd import numpy as np from sklearn.cluster import KMeans import matplotlib.pyplot as plt import seaborn as sns 데이터 생성 df = pd.DataFrame(columns=['height', 'weight']) df.loc[0] = [185, 60] df.loc[1] = [180, 60] df.loc[2] = [185, 70] df.loc[3] = [165, 63] df.loc[4] = [155, 68] df.loc[5] = [170, 75] df.loc[6] = [175, 80] df [출..

K 평균 알고리즘(kmean++)

순서 데이터 준비 몇 개의 클래스로 분류할 것인지 설정 클러스터의 최초 중심 설정 데이터를 가장 가까운 클러스터로 지정 클러스터 중심을 클러스터에 속한 데이터들의 가운데 위치로 변경 클러스터 중심이 바뀌지 않을 때까지 4번부터 5번 과정을 반복적으로 수행 1. 데이터 준비 데이터 간의 거리를 사용해 가까운 거리에 있는 데이터끼지 하나의 클래스로 묶는 알고리즘이다. 물론 데이터는 수치화된 데이터여야 한다. 2. 몇 개의 클래스로 분류할 것인가 k는 몇 개의 클래스로 분류할 것인지를 나타내는 변수이다. 3. 클러스터의 최초 중심 설정 k 평균의 표준 알고리즘은 클러스터의 최초 중심을 무작위로 설정한다. 그리고 사이킷런의 k 평균 라이브러리는 기본적으로 kmean++라는 알고리즘을 써서 클러스터의 최초 중심을..

[실습] 다항분포 나이브 베이즈(Multinomial Naive Bayes)

다항분포 나이브 베이즈는 앞서 실습한 베르누이 나이브 베이즈와 비슷하다. 하지만 베르누이는 데이터의 특징이 0 또는 1로 표현되고 다항분포는 데이터의 특징이 출현 횟수로 표현된다. Import import numpy as np import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB from sklearn.metrics import accuracy_score 데이터 생성 영화 감상평을 데이터로 생성하여 실습해보았다. review_list = [ {'movie_review' : 'this is great great movie. I will ..

[실습]Bernoulli Naive Bayes(베르누이 나이브 베이즈)

Import import numpy as np import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import BernoulliNB #베르누이 나이브 베이즈 from sklearn.metrics import accuracy_score 'CountVectorizer'에 대한 것은 사용할 때 설명하겠다. 데이터 생성 #임의의 데이터 생성 email_list = [ {'email title' : 'free game only today', 'spam' : True}, {'email title' : 'cheapest flight deal', 'spam' : True}, {'ema..

[실습] Gaussian Naive Bayes(가우시안 나이브 베이즈)

Import 다음과 같이 필요한 라이브러리를 임포트한다. import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split #가우시안 나이브 베이즈 from sklearn.naive_bayes import GaussianNB from sklearn import metrics from sklearn.metrics import accuracy_score 데이터 불러오기 각 데이터 속성의 뜻은 다음과 같다. sepal length : 꽃받침 길이 sepal width : 꽃받침 너비 petal length : 꽃잎 길이 petal width : 꽃잎 너비 target : 붓꽃의..

[실습]SVM(Support Vector Machine)

먼저 csv파일을 불러오고 train 데이터와 test 데이터를 나눠주겠다. 데이터 불러오기 import pandas as pd df = pd.read_csv("./drive/MyDrive/basketball_stat.csv") #구글 드라이브 내에 있는 파일을 불러옴 df.head() 데이터 분리 from sklearn.model_selection import train_test_split #80%는 학습 데이터, 20%는 테스트 데이터로 분리 train, test = train_test_split(df, test_size=0.2) #학습 데이터, 테스트 데이터 개수 확인 print(train.shape[0]) print(test.shape[0]) 최적의 SVM 파라미터 찾기 이제 불러온 데이터를 RB..

SVM(Support Vector Machine)

우선 SVM에 대해서 간략하게 설명하자면 SVM은 '마진'이라는 값을 최대로 하는 결정 경계선을 찾는 것을 목표로하는 분류 알고리즘이다. 결정 경계선이라는 것은 예를 들어서 한강을 기준으로 강북과 강남으로 나뉘어진다고 했을 때 한강이 결정 경계선이 되는 것이다. 이제 다음과 같은 용어들의 개념을 하나씩 알아보겠다. 서포트 벡터(support vector) 마진(margin) 비용(cost) 커널 트릭(kernel trick) 서포트 벡터 서포트 벡터는 결정 경계선과 가장 가까이 맞닿은 데이터 포인트를 의미한다. 결정 경계선하고 가장 가까운 데이터의 위치라고도 할 수 있겠다. 마진 서포트 벡터와 결정 경계 사이의 거리를 마진이라고 한다. 위에서도 언급했듯이 이 '마진'을 최대로..

[실습] k-최근접 이웃(k-Nearest Neighbor, kNN)

[https://github.com/wikibook/machine-learning]에서 다운로드 받은 농구선수에 대한 데이터를 사용하여 kNN 알고리즘을 적용해보는 실습을 하였다. 목표는 임의의 농구선수의 포지션을 예측하는 것이다. 데이터 획득 import pandas as pd df = pd.read_csv(./data/basketball_stat.csv) df.head() colab에서 실행하였고 파일을 드라이브에 넣었기 때문에 경로를 "./data/basketball_stat.csv"로 지정해준 것이다. [출력] 각 데이터 속성 값의 의미는 다음과 같다. Player = 선수 이름 Pos = 포지션 3P = 한 경기 평균 3점슛 성공 횟수 2P = 한 경기 평균 2점슛 성공 횟수 TRB = 한 경기..

728x90