\ 'Machine Learning' 카테고리의 글 목록 :: Something New
728x90
반응형

 

 

 

728x90
728x90
반응형

step1.
숫자 k인접한 수를 선택
step2.
k랑 가장 가까운 수의 유클리디안 거리를 고려 
step3.
한 범주로 부터 떨어진 데이터의 수
step4.
데이터와 가장 근접한 가장 많은 이웃의 카테고리를 확인

Training the K-NN model on the Training set
사이킷런 홈페이지-api-knn
sklearn.neighbors.KNeighborsClassifier — scikit-learn 1.0.1 documentation

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeifhborsClassifier(n_neighbors = 5, matric = 'minkoski', p=2)
classifier.fit(x_train,y_train)

 

 

linear classifier 선형 분류같은 경우 곡선이어도 선으로 표현하지만

그 경계 주변의 결과들이 맞지 않는 경우들이 생긴다.

그러나 K-NN알고리즘의 경우 최근접의 데이터로 영역을 구분하기 때문에 오차가 줄어든다.

728x90
728x90
반응형

sklearn.linear_model.LogisticRegression — scikit-learn 1.0.1 documentation

 

sklearn.linear_model.LogisticRegression

Examples using sklearn.linear_model.LogisticRegression: Release Highlights for scikit-learn 1.0 Release Highlights for scikit-learn 1.0, Release Highlights for scikit-learn 0.23 Release Highlights ...

scikit-learn.org

 

Training the Logistic Regression model on the Training set

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state=0)//인스턴스생성 
classifier.fit(X_trains, y_tains)//훈련시키는 작업

 

Predicting a new result

//한 고객의 결과를 내는 것 
predict method 사용
classifier.predict(sc.transform([[30,87000]]))//2차원배열에서 30살의 87000달러를 받는 사람의 구매여부가 궁금

result : [0]

Predicting the Test set results[템플릿]

y_pred= classifier.predict(X_test)
print(np.concatenate((y_prep.reshape(len(y_pred),1),y_test.reshape(len(y_test),1)),1))

왼쪽 열은 테스트세트에서 얻은 결과 오른쪽 열은 실제 얻은 결과

[0.0]

[0,1]

...

(*0은 No, 1은 Yes)

 

Making the Confusion Matrix

sklearn.metrics.confusion_matrix — scikit-learn 1.0.1 documentation

confusion_matrix example

sklearn.metrics.accuracy_score — scikit-learn 1.0.1 documentation

acuuracy_score example

 

from sklearn.matrics import confusion_matrix, accuracy_score
cm = confusion_matrix(y_test, y_pred)
print(cm)
accuracy_score(y_test, y_pred)

 

 

728x90
728x90
반응형

Importing the libraries

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Data.csv(데이터 샘플)

나이 예상급여 차 구입 여부
20 30000000 0
33 40000000 0
28 58000000 1

 

예를 들면 나이, 예상급여를 보고 차를 살지 안 살지를 예측해봄(0이면 구매않음을 예상 1이면 구매예상)

 

Importing the dataset

여기서 쓰인 데이터는 첫번째, 두 번째 열로 세 번째 열을 판단하는 데이터

dataset = pd.read_csv{'Data.csv'}
X= dataset.iloc[:,:-1].values
y = dataset.iloc[:,-1].values

Splitting the dataset into the Training set and Test set

test_size 가 0.25면 데이터가 400개 있음 훈련 데이터는 300개, 테스트 데이터는 100개로 나눔

from sklearn.model_selection import trains_test_split
X_train. X_test, y_trains, y_test = train_test_split(X,y, test_size = 0.25, random_state =0)

Feature Scaling 

때에 따라 해도되고 안 해도 되지만 하면 정확도가 올라감 

from sklearn.preprocessing import StandartScaler
sc = StandardScaler
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

 

Enjoy Machine Learning!

 

본 글은 Udemy의 Machine Learning A-Z: Hands-On Python & R In Data Science 강의를 듣고

작성되었습니다.

 

728x90
728x90
반응형

머신러닝에서의 모델

머신러닝 알고리즘을 구현한 프로그램 또는 알고리즘을 수식 등으로 구체화하여 표현한 것을 모델이라고 부름.

 

특성

데이터를 표현하는 하나의 성질

ex) 분류할 대상의 무게나 길이

 

정확도

정확한 답을 몇 개 맞혔는지 백분율로 나타낸 값

사이킷런에서는 0~1사이의 값으로 출력

정확도 = 정확히 맞힌 개수/전체 데이터 개수

 

k-최근접 알고리즘이란

가장 간단한 머신러닝 알고리즘 중 하나로

어떤 규칙을 찾기보다는 전체 데이터를 메모리에 가지고 있는 것이 전부인 알고리즘

 

KNeighborsClassifier()는 k-최근접 이웃 분류 모델을 만드는 사이킷런 클래스

n_neighbors 매개변수로 이웃의 개수를 지정

기본값은 5

 

p매개변수로 거리를 재는 방법을 지정하고

1이면 맨해튼 거리를 사용하고 2일 경우 유클리디안 거리를 사용한다.

기본값은 2

 

n_jobs 매개변수로 사용할 CPU코어를 지정가능

-1로 설정하면 모든 CPU코어를 사용

 

이웃 간의 거리 계산 속도를 높일 수 있지만 fit() 메서드에는 영향이 없음

기본값은 1

import sklearn
model = sklearn.neighbor.KNeighborsClassifier()

 

fit()

훈련(Training)할 때 사용하는 메서드

처음 두 매개변수로 훈련에 사용할 특성과 정답 데이터를 전달

모델에 데이터를 전달하여 규칙을 학습하는 과정

 

predict()

사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드

특성 데이터 하나만 매개변수로 받음

 

score()

훈련된 사이킷런 모델의 성능을 측정

처음 두 매개변수로 특성과 정답 데이터를 전달

이 메서드는 먼저 predict() 메서드로 예측을 수행한 다음 분류 모델일 경우 정답과 비교하여 올바르게 예측한 개수를 비율로 반환

 

 

 

 

 

728x90

+ Recent posts