Une introduction à l'utilisation de l'algorithme naïf de Bayes en python

高洛峰
Libérer: 2017-03-21 09:09:39
original
1511 Les gens l'ont consulté

Répétez pourquoi le titre est "utilisation" au lieu de "mise en œuvre" :

Tout d'abord, l'algorithme fourni par les professionnels est supérieur à celui que l'algorithme que nous écrivons est plus efficace et correct.

Deuxièmement, pour les personnes qui ne sont pas bonnes en mathématiques, il est très pénible d'étudier un tas de formules afin de mettre en œuvre l'algorithme.

Encore une fois, à moins que les algorithmes fournis par d'autres ne puissent répondre à vos besoins, il n'est pas nécessaire de « réinventer la roue ».

Passons aux choses sérieuses. Si vous ne connaissez pas l'algorithme bayésien, vous pouvez vérifier les informations pertinentes. Voici juste une brève introduction :

1. Formule bayésienne :

.

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

2. Inférence bayésienne :

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

          Exprimé en mots :                                                                                         ' s ' s ' s ' s ' s                   utiliser out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out out à travers à travers à travers à travers à travers à travers à travers à travers à travers à travers à travers à travers à travers ‐ ‐ ‐ ‐ ‐ et ‐ à Baye Le problème à résoudre par l'algorithme sri lankais est de savoir comment trouver la similarité, c'est-à-dire : la valeur de P(B|A)

3. Trois naïfs couramment utilisés Les algorithmes de Bayes sont fournis dans le package scikit-learn, comme suit Explication tour à tour : 1) Bayes naïf gaussien : supposons que l'attribut

/fonctionnalité obéit à la distribution normale (comme indiqué ci-dessous) , et est principalement utilisé pour les fonctionnalités numériques.

                                                                                                                                                                                                                                   Depuis les données est livré dans le package scikit-learn, le code et la description sont les suivants :

Cela implique une question : comment juger si les données sont conformes à la distribution normale ? Il existe des jugements de fonctions associés dans le langage R, ou vous pouvez également le voir directement en dessinant

, mais ce sont toutes des situations où P(x, y) peut être directement dessiné

Une introduction à lutilisation de lalgorithme naïf de Bayes en python dans le système de coordonnées. Comment déterminer les données dans l'exemple n'est pas encore clair. Cette partie sera ajoutée plus tard.

2) Distribution multinomiale Naive Bayes : souvent utilisée pour la classification de texte, la caractéristique est le mot et la valeur est le nombre de fois que le mot apparaît.

>>>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])
Copier après la connexion

3) Bernoulli Naive Bayes : Chaque fonctionnalité est de type booléen, et le résultat est 0 ou 1, c'est-à-dire qu'il n'apparaît pas

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!