机器学习之KNN算法,朴素贝叶斯,决策树,SVM算法比较
KNN算法
knn = KNeighborsClassifier ( )
朴素贝叶斯
gnb = GaussianNB ( )
决策树
dtc = DecisionTreeClassifier ( )
SVM算法
svm = SVC ()
代码:
import numpy as np
import matplotlib.pyplot as plt
from itertools import product
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
# 加载数据
wine = datasets.load_wine ( )
x_train = wine.data [ : , [ 0 , 2 ] ]
y_train = wine.target
# 定义分类器对象,均使用默认参数
knn = KNeighborsClassifier ( )
gnb = GaussianNB ( )
dtc = DecisionTreeClassifier ( )
svm = SVC ()
# 训练分类器
knn.fit ( x_train , y_train )
gnb.fit ( x_train , y_train )
dtc.fit ( x_train , y_train )
svm.fit ( x_train , y_train )
# 测试并输出准确率
print ( 'KNN:' , knn.score ( x_train , y_train ))
print ( 'GaussianNB:' , gnb.score ( x_train , y_train ))
print ( 'Decision Tree:' , dtc.score ( x_train , y_train ))
print ( 'Support Vector Machine:' , svm.score ( x_train , y_train ))
# 获取测试点范围
x_min , x_max = x_train[:,0].min()-1 , x_train [:,0].max()+1
y_min , y_max = x_train [ : , 1 ].min ( ) - 1 , x_train [ : , 1 ].max ( ) + 1
# 生成测试点
xx , yy = np.meshgrid ( np.arange ( x_min , x_max , 0.1 ) , np.arange ( y_min , y_max , 0.1 ) )
# 设置子图
f , axe = plt.subplots ( 2 , 2 , sharex = 'col' , sharey = 'row' , figsize = ( 10 , 8 ) )
# 测试全部测试点并将分类结果作为颜色参数绘制结果图
for idx , clf , tt in zip ( product([0,1],[0,1]) , [ knn , gnb , dtc , svm] , [ 'KNN' , 'GaussianNB' , 'Decision Tree' , 'Support Vector Machine' ] ) :Z = clf.predict ( np.c_[ xx.ravel ( ) , yy.ravel ( ) ] )Z = Z.reshape ( xx.shape )axe [ idx [ 0 ] , idx [ 1 ] ].contourf ( xx , yy , Z , alpha = 0.4 )axe [ idx [ 0 ] , idx [ 1 ] ].scatter ( x_train [ : , 0 ] , x_train [ : , 1 ] , c = y_train , s = 20 , edgecolor = 'k' )axe [ idx [ 0 ] , idx [ 1 ] ].set_title ( tt )
plt.show()
结果:
机器学习之KNN算法,朴素贝叶斯,决策树,SVM算法比较相关推荐
- 机器学习实验二:朴素贝叶斯和SVM——肿瘤分类与预测(朴素贝叶斯)
实操项目 1--肿瘤分类与预测(朴素贝叶斯) 实验要求 采用朴素贝叶斯方法,对美国威斯康星州的乳腺癌诊断数据集进行分类,实现针对乳腺癌检测的分类器,以判断一个患者的肿瘤是良性还是恶性. [实验要求] ...
- 02-分类算法:knn、朴素贝叶斯、决策树和随机森林
目录 sklearn数据集 一.数据集划分 二. 数据集获取 三.sklearn机器学习算法的实现-估计器 分类算法-k近邻算法(KNN) 一.定义: 二.公式: 三.语法: 四.模型调优方法: 1. ...
- 机器学习算法-朴素贝叶斯
一.概述 概率分类器 在许多分类算法应用中,特征和标签之间的关系并非是决定性的.比如说,我们想预测一个人究竟是否会在泰坦尼克号海难中生存下来,那我们可以建一棵决策树来学习我们的训练集.在训练中,其中一 ...
- 判别两棵树是否相等 设计算法_机器学习算法-朴素贝叶斯
一.概述 概率分类器 在许多分类算法应用中,特征和标签之间的关系并非是决定性的.比如说,我们想预测一个人究竟是否会在泰坦尼克号海难中生存下来,那我们可以建一棵决策树来学习我们的训练集.在训练中,其中一 ...
- [Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测
ML之NB:基于news新闻文本数据集利用纯统计法.kNN.朴素贝叶斯(高斯/多元伯努利/多项式).线性判别分析LDA.感知器等算法实现文本分类预测 目录 基于news新闻文本数据集利用纯统计法.kN ...
- 【机器学习算法-朴素贝叶斯、支持向量机】
机器学习算法-朴素贝叶斯算法 1.朴素贝叶斯算法 2.支持向量机 2.1SVM基本综述 1.朴素贝叶斯算法 朴素贝叶斯是生成模型,需要根据已有的数据求出先验概率. 1.联合概率 2.条件概率 3.相互 ...
- a*算法的优缺点_轻松理解机器学习算法-朴素贝叶斯
1.预备知识 贝叶斯定理(Bayes' theorem)是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关.通常事件A在事件B发生的条件下的概率,与事件B在事件A发生的条件下的概率是不一 ...
- 贝叶斯在计算机视觉中的应用,KNN与朴素贝叶斯在计算机视觉的鱼苗计数中的应用探索.doc...
KNN与朴素贝叶斯在计算机视觉的鱼苗计数中的应用探索 ( 引言 每年鱼种养殖场或渔农都要根据自己的养殖需要购入鱼苗培育成鱼种,但购买时要做到鱼苗的准确计数很难.有些不法商贩和鱼苗繁殖场往往利用渔农的大 ...
- 秦曾昌人工智能课程---5、KNN和朴素贝叶斯
秦曾昌人工智能课程---5.KNN和朴素贝叶斯 一.总结 一句话总结: 拟合和概率:构建机器学习模型,一般有拟合和概率两种方式 轻学无用:一定要保证学有所用,要深入学习,比如之前做的安卓,一定要学通, ...
最新文章
- 基于itchat的个人情感分析
- 十年后你用什么听音乐?
- 常考数据结构与算法:实现二叉树先序,中序和后序遍历
- 计算机中丢失sense3.dll,sense3.dll
- JavaScript中的的面向对象中的一些知识
- 从没见过干净图片,英伟达AI就学会了去噪大法 | ICML论文
- 轻量型thttpd+php5
- C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果。
- 动态修改EasyUI accordion选中面板的标题(title)
- 如何保护进程 不被结束_花草种植技术如何保护花草树木不受伤害
- Android -- TabHost
- 消息栏通知(Notification)介绍
- LoadRunner函数大全
- 女生适合做测试吗?看完这篇文章你就懂了
- java虚拟函数_java实现多态中的虚函数相关概念
- GreenPlum系列-5-角色和权限
- 程序员的佛系炒股日常
- 2022.10.11
- 智能电网如何巡检?这个方法才是标配
- python输入end退出循环_python练习:从入门到实践——用户输入和while循环