단순 모델: 나이브 베이즈
이 블로그에서는 Bayes Theorem이 무엇인지, Naive Bayes를 순진하게 만드는 요소를 살펴본 다음 "sklearn"과 함께 Naive Bayes 알고리즘을 사용하는 방법에 대한 짧은 자습서를 제공합니다.
베이즈 정리
베이즈 정리는 다른 일이 발생했을 때 어떤 일이 일어날 확률을 설명합니다. 이 조건부 확률은 사건에 대한 사전 지식을 사용하여 사건이 발생할 확률을 제공합니다. 공식은 다음과 같습니다.
P(A|B) B가 참일 때 A의 확률.
P(B|A) A가 참일 때 B의 확률입니다.
P(A) A가 참일 확률.
P(B) B가 참일 확률.
순진한
Naive Bayes는 이러한 기능이 서로 독립적이라는 가정을 통해 여러 변수를 설명하도록 Bayes 정리를 확장합니다. 이 모델을 사용할 때 이러한 기능은 실제로 서로 독립적이지 않을 수 있으며 그것이 우리가 순진함을 얻는 곳이지만 여전히 깨끗하고 정규화된 데이터 세트로 강력한 결과를 생성할 수 있습니다. 다음과 같이 공식을 확장해 보겠습니다.
이제 이러한 가정을 했으므로 각 독립 기능에 대한 조건부 확률을 곱하여 전체 확률을 추정할 수 있습니다.
모델
이제 Naive Bayes가 작동하는 것을 살펴보겠습니다. 이 예제를 집에서 시도하는 경우 쉽게 따라할 수 있도록 sklearn의 와인 데이터 세트를 사용할 것입니다. 따라서 먼저 가져와야 하는 모든 패키지를 가져오겠습니다.
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_wine
from sklearn import metrics
import pandas as pd
import numpy as np
이제 데이터 세트를 로드할 수 있으며 개인적으로 pandas의 레이아웃을 선호하므로 형식도 지정하겠습니다.
wine = load_wine()
data = pd.DataFrame(data= np.c_[wine['data'], wine['target']],
columns= wine['feature_names'] + ['target'])
따라서 우리가 가지고 있는 것을 살펴보면 다음과 같은 몇 가지 기능이 추가되어야 합니다.
그런 다음 여기에서 데이터를 교육 및 테스트 그룹으로 분할한 다음 모델에 맞추는 것입니다.
X=data.drop('target',axis=1)
y=data['target']
Xtrain, Xtest, ytrain, ytest = train_test_split(X,y)
model = GaussianNB()
model.fit(Xtrain,ytrain)
이제 우리의 값을 예측하고 모델이 어떻게 작동하는지 살펴보겠습니다.
ypred = model.predict(Xtest)
print(metrics.classification_report(ytest, ypred))
print(metrics.confusion_matrix(ytest, ypred))
와우 거의 즉각적인 처리를 위해 정말 대단합니다!
결론
이것이 Naive Bayes와 그것이 얼마나 유용한지에 대해 조금 더 이해하는 데 도움이 되기를 바랍니다. 분류에 매우 빠르고 결과적으로 많은 양의 데이터에 매우 적합합니다. Naive Bayes는 실제로 대부분의 정크 메일 애플리케이션에서 사용됩니다!
Reference
이 문제에 관하여(단순 모델: 나이브 베이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/trossii/simple-model-naive-bayes-1bk9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Naive Bayes는 이러한 기능이 서로 독립적이라는 가정을 통해 여러 변수를 설명하도록 Bayes 정리를 확장합니다. 이 모델을 사용할 때 이러한 기능은 실제로 서로 독립적이지 않을 수 있으며 그것이 우리가 순진함을 얻는 곳이지만 여전히 깨끗하고 정규화된 데이터 세트로 강력한 결과를 생성할 수 있습니다. 다음과 같이 공식을 확장해 보겠습니다.
이제 이러한 가정을 했으므로 각 독립 기능에 대한 조건부 확률을 곱하여 전체 확률을 추정할 수 있습니다.
모델
이제 Naive Bayes가 작동하는 것을 살펴보겠습니다. 이 예제를 집에서 시도하는 경우 쉽게 따라할 수 있도록 sklearn의 와인 데이터 세트를 사용할 것입니다. 따라서 먼저 가져와야 하는 모든 패키지를 가져오겠습니다.
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_wine
from sklearn import metrics
import pandas as pd
import numpy as np
이제 데이터 세트를 로드할 수 있으며 개인적으로 pandas의 레이아웃을 선호하므로 형식도 지정하겠습니다.
wine = load_wine()
data = pd.DataFrame(data= np.c_[wine['data'], wine['target']],
columns= wine['feature_names'] + ['target'])
따라서 우리가 가지고 있는 것을 살펴보면 다음과 같은 몇 가지 기능이 추가되어야 합니다.
그런 다음 여기에서 데이터를 교육 및 테스트 그룹으로 분할한 다음 모델에 맞추는 것입니다.
X=data.drop('target',axis=1)
y=data['target']
Xtrain, Xtest, ytrain, ytest = train_test_split(X,y)
model = GaussianNB()
model.fit(Xtrain,ytrain)
이제 우리의 값을 예측하고 모델이 어떻게 작동하는지 살펴보겠습니다.
ypred = model.predict(Xtest)
print(metrics.classification_report(ytest, ypred))
print(metrics.confusion_matrix(ytest, ypred))
와우 거의 즉각적인 처리를 위해 정말 대단합니다!
결론
이것이 Naive Bayes와 그것이 얼마나 유용한지에 대해 조금 더 이해하는 데 도움이 되기를 바랍니다. 분류에 매우 빠르고 결과적으로 많은 양의 데이터에 매우 적합합니다. Naive Bayes는 실제로 대부분의 정크 메일 애플리케이션에서 사용됩니다!
Reference
이 문제에 관하여(단순 모델: 나이브 베이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/trossii/simple-model-naive-bayes-1bk9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_wine
from sklearn import metrics
import pandas as pd
import numpy as np
wine = load_wine()
data = pd.DataFrame(data= np.c_[wine['data'], wine['target']],
columns= wine['feature_names'] + ['target'])
X=data.drop('target',axis=1)
y=data['target']
Xtrain, Xtest, ytrain, ytest = train_test_split(X,y)
model = GaussianNB()
model.fit(Xtrain,ytrain)
ypred = model.predict(Xtest)
print(metrics.classification_report(ytest, ypred))
print(metrics.confusion_matrix(ytest, ypred))
이것이 Naive Bayes와 그것이 얼마나 유용한지에 대해 조금 더 이해하는 데 도움이 되기를 바랍니다. 분류에 매우 빠르고 결과적으로 많은 양의 데이터에 매우 적합합니다. Naive Bayes는 실제로 대부분의 정크 메일 애플리케이션에서 사용됩니다!
Reference
이 문제에 관하여(단순 모델: 나이브 베이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/trossii/simple-model-naive-bayes-1bk9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)