Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Einführung in die Verwendung des naiven Bayes-Algorithmus in Python

Eine Einführung in die Verwendung des naiven Bayes-Algorithmus in Python

高洛峰
高洛峰Original
2017-03-21 09:09:391544Durchsuche

Wiederholen Sie, warum der Titel „Verwendung“ und nicht „Implementierung“ lautet:

Erstens ist der von den Fachleuten bereitgestellte Algorithmus in Bezug auf Effizienz und Genauigkeit besser als der Algorithmus, den wir geschrieben haben.

Zweitens ist es für Menschen, die nicht gut in Mathematik sind, sehr mühsam, eine Reihe von Formeln zu studieren, um den Algorithmus zu implementieren.

Auch hier gilt: Sofern die von anderen bereitgestellten Algorithmen Ihre Anforderungen nicht erfüllen können, besteht keine Notwendigkeit, „das Rad neu zu erfinden“.

Kommen wir zur Sache. Wenn Sie den Bayes'schen Algorithmus nicht kennen, können Sie hier nur eine kurze Einführung finden:

1. Bayes'sche Formel:

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

2. Bayes'sche Folgerung:

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

          Ausgedrückt in Worten:                                                                            ' s ' s ' s ' s                     verwenden out out out out out out out out out through out through through using       ' through to 1 through ‐ through ‐ ‐ ‐ ‐ ‐ und ‐ nach Baye Das vom sri-lankischen Algorithmus zu lösende Problem besteht darin, die Ähnlichkeit zu finden, das heißt: den Wert von P(B|A)

3. Drei häufig verwendete Naivitäten Bayes-Algorithmen werden im scikit-learn-Paket wie folgt bereitgestellt. Erklärung in der Reihenfolge: 1) Gaussian Naive Bayes: Gehen Sie davon aus, dass das

-Attribut

/Feature der Normalverteilung unterliegt (wie gezeigt). unten) und wird hauptsächlich für numerische Merkmale verwendet.

Die Daten werden mit den Daten mit dem scikit-leARN-Paket geliefert, der Code und die Anweisungen lauten wie folgt:

Hier geht es um eine Frage: Wie beurteilt man, ob die Daten der Compliance-Normalverteilung entsprechen? Es gibt verwandte Funktionsurteile in der R-Sprache, oder Sie können sie auch durch direktes

ZeichnenEine Einführung in die Verwendung des naiven Bayes-Algorithmus in Python sehen, aber dies sind Situationen, in denen P(x,y) direkt

in den Koordinaten gezeichnet werden kann Wie die Daten im Beispiel ermittelt werden, ist noch nicht klar. Dieser Teil wird später hinzugefügt.

>>>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])
2) Multinomiale Verteilung Naive Bayes: Wird häufig zur Textklassifizierung verwendet. Das Merkmal ist das Wort und der Wert ist die Häufigkeit, mit der das Wort vorkommt.

3) Bernoulli Naive Bayes: Jedes Feature ist vom booleschen Typ und das Ergebnis ist 0 oder 1, das heißt, es erscheint nicht

Das obige ist der detaillierte Inhalt vonEine Einführung in die Verwendung des naiven Bayes-Algorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn