>  기사  >  백엔드 개발  >  Python에서 Naive Bayes 알고리즘을 사용하는 방법에 대한 소개

Python에서 Naive Bayes 알고리즘을 사용하는 방법에 대한 소개

高洛峰
高洛峰원래의
2017-03-21 09:09:391481검색

제목이 "구현"이 아닌 "사용"인 이유를 반복합니다.

우선 전문가가 제공하는 알고리즘은 우리가 작성한 알고리즘보다 효율성과 정확성 측면에서 더 높습니다.

둘째, 수학을 잘 못하는 사람들에게는 알고리즘을 구현하기 위해 수많은 공식을 공부하는 것이 매우 고통스럽습니다.

다시 말하지만, 다른 사람이 제공한 알고리즘이 귀하의 요구를 충족시키지 못하는 한 "바퀴를 재발명"할 필요가 없습니다.

본격적으로 베이지안 알고리즘을 모른다면 관련 정보를 확인해 보세요.

1. 베이지안 공식:

P( A|B)=P(AB)/P(B)

2. 베이지안 추론:

P(A|B)=P(A)×P( B|A )/P(B)

말로 표현하면

사후 확률 = 사전 확률 × 유사성/표준화 상수 스리랑카 알고리즘이 해결해야 할 문제는 다음과 같습니다. 유사성을 찾으려면, 즉 P(B|A)의 값

3. 일반적으로 사용되는 세 가지 Naive Bayes 알고리즘이 scikit-learn 패키지에 제공됩니다. 설명은 다음과 같습니다.

1) Gaussian Naive Bayes:

속성

/feature가 정규 분포(아래 참조)를 따르고 주로 수치 특성에 사용된다고 가정합니다.

데이터는 scikit-leARN 패키지의 데이터와 함께 제공되며 코드와 지침은 다음과 같습니다.

>>>from sklearn import datasets   ##导入包中的数据
>>> iris=datasets.load_iris()     ##加载数据
>>> iris.feature_names            ##显示特征名字
    ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
>>> iris.data                     ##显示数据
    array([[ 5.1, 3.5, 1.4, 0.2],[ 4.9, 3. , 1.4, 0.2],[ 4.7, 3.2, 1.3, 0.2]............
>>> iris.data.size                ##数据大小 ---600个
>>> iris.target_names             ##显示分类的名字 
    array([&#39;setosa&#39;, &#39;versicolor&#39;, &#39;virginica&#39;], dtype=&#39;<U10&#39;)
>>> from sklearn.naive_bayes import GaussianNB  ##导入高斯朴素贝叶斯算法
>>> clf = GaussianNB()                          ##给算法赋一个变量,主要是为了方便使用
>>> clf.fit(iris.data, iris.target)             ##开始分类。对于量特别大的样本,可以使用函数partial_fit分类,避免一次加载过多数据到内存

>>> clf.predict(iris.data[0].reshape(1,-1))       ##验证分类。标红部分特别说明:因为predict的参数是数组,data[0]是列表,所以需要转换一下
array([0])
>>> data=np.array([6,4,6,2])                      ##验证分类
>>> clf.predict(data.reshape(1,-1))
array([2])
Python에서 Naive Bayes 알고리즘을 사용하는 방법에 대한 소개 여기에 관련된 질문: 방법 데이터가 배포된 정상적인 상황을 충족한다고 판단합니까? R 언어에는 관련 함수판단이 있거나 직접

그리면

볼 수 있지만 이는 좌표계에서 P(x,y)를 직접

그릴 수 있는 상황이다. 예제의 데이터를 어떻게 결정하는지는 아직 명확하지 않습니다. 이 부분은 나중에 추가하겠습니다. 2) 다항 분포 Naive Bayes: 텍스트 분류에 자주 사용되며 특징은 단어, 값은 단어가 나타나는 횟수입니다.

##示例来在官方文档,详细说明见第一个例子
>>> import numpy as np
>>> X = np.random.randint(5, size=(6, 100))    ##返回随机整数值:范围[0,5) 大小6*100 6行100列
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB()
>>> clf.fit(X, y)
MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)  
>>> print(clf.predict(X[2]))
[3]

3) Bernoulli Naive Bayes: 각 특성은 부울 유형이며 결과는 0 또는 1, 즉 나타나지 않습니다.

##示例来在官方文档,详细说明见第一个例子
>>> import numpy as np
>>> X = np.random.randint(2, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB(alpha=1.0, binarize=0.0, class_prior=None, fit_prior=True)  
>>> print(clf.predict(X[2]))
[3]

위 내용은 Python에서 Naive Bayes 알고리즘을 사용하는 방법에 대한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.