Python 多种算法模型对比

1 声明

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。

2 算法模型对比简介

可以对同一份训练数据集应用多个算法模型,通过交叉验证的方法计算出准确率进行比较以选择效果较好的算法。应用交叉验证的好处是当用新的数据检验模型的表现时,可以在一定程度上减小过拟合。

1 这里的数据集来自pima-indians-diabetes(最初来自国家糖尿病/消化/肾脏疾病研究所。数据集的目标是基于数据集中包含的某些诊断测量来诊断性的预测 患者是否患有糖尿病)。

2 当前代码仅为演示多模型对比的用法,该数据集的特征并未做预处理。

3 KNN代码示例

# Step1 加载数据、各种分类包
from pandas import read_csv
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import KFold
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import cross_val_score
from matplotlib import pyplot
from sklearn.neighbors import KNeighborsClassifier
# 导入数据
filename = '../input/pima-indians-diabetes.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
# 将数据分为输入数据和输出结果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
num_folds = 10
seed = 1007
kfold = KFold(n_splits=num_folds, random_state=seed)
models = {}
models['LR'] = LogisticRegression(solver='liblinear')
models['LDA'] = LinearDiscriminantAnalysis()
models['KNN'] = KNeighborsClassifier()
models['CART'] = DecisionTreeClassifier()
models['SVM'] = SVC(gamma='auto')
models['NB'] = GaussianNB()
results = []
for name in models:result = cross_val_score(models[name], X, Y, cv=kfold)results.append(result)msg = '%s: %.3f (%.3f)' % (name, result.mean(), result.std())print(msg)
# 图表显示
fig = pyplot.figure()
from matplotlib.font_manager import FontProperties
#设置支持中文字体
fp= FontProperties(fname="c:/windows/fonts/simsun.ttc", size=12)
fig.suptitle('各分类算法比较',fontproperties=fp)
ax = fig.add_subplot(111)
pyplot.boxplot(results)
ax.set_xticklabels(models.keys())
pyplot.show()
LR: 0.770 (0.048)
LDA: 0.773 (0.052)
KNN: 0.727 (0.062)
CART: 0.689 (0.067)
SVM: 0.651 (0.072)
NB: 0.755 (0.043)

4 总结

Python 多种算法模型对比相关推荐

  1. 如何构建阿里小蜜算法模型的迭代闭环?

    简介: 伴随着 AI 的兴起,越来越多的智能产品诞生,算法链路也会变得越来越复杂,在工程实践中面临着大量算法模型的从 0 到 1 快速构建和不断迭代优化的问题,本文将介绍如何打通数据分析 - 样本标注 ...

  2. Python数据挖掘项目:构建随机森林算法模型预测分析泰坦尼克号幸存者数据

    作者CSDN:进击的西西弗斯 本文链接:https://blog.csdn.net/qq_42216093/article/details/120196972 版权声明:本文为作者原创文章,未经作者同 ...

  3. 决策树-基于不同算法的决策树模型对比

    决策树是一个树结构(可以是二叉树或非二叉树),其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个输出类别.使用决策树进行决策的过程就是从根节点开始 ...

  4. python蒙特卡洛算法模拟赌博模型

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  5. NLP之PTM:自然语言处理领域—预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transfo→GPT系列/BERT系列等)、关系梳理、模型对比之详细攻略

    NLP之PTM:自然语言处理领域-预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transformer→GPT系列/BERT系列等).关系梳理.模型对比之 ...

  6. 使用python实现3D点云算法模型

    你想问的是如何使用 Python 实现 3D 点云算法模型吗?如果是,我可以给你一些指引. 首先,你需要准备好 3D 点云数据.这可以通过扫描物体或环境来生成,也可以从已有的数据集中获取.然后,你可以 ...

  7. 文本相似度算法的对比及python实现

    文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...

  8. python实现文本相似度算法的对比及

    文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...

  9. python空气质量分析与预测_干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?...

    原标题:干货!如何用 Python+KNN 算法实现城市空气质量分析与预测? 作者 | 李秋键 责编 | 伍杏玲 封图 | CSDN 付费下载自东方 IC 出品 | CSDN(ID:CSDNnews) ...

最新文章

  1. linux安全体系分析与编程pdf下载,linux内核printk调试(摘录《Linux安全体系分析与编程》)...
  2. 多形态MVC式Web架构:完成实时响应
  3. [手机分享]黑莓手机7系列分享之——黑莓7730
  4. ECShop的数据操作类文件
  5. 28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
  6. 程序员必备的 10 大 GitHub 仓库
  7. android开发 停止运行程序,开发的时候老是报错 XXXXX程序已停止运行。
  8. vSAN其实很简单-如何榨干vSAN的最后的空间- Part2(转)
  9. 何恺明!再斩ICCV 2017最佳论文
  10. 8.15 号 程序 循环结构作业的代码
  11. CPT104 计算机操作系统概念笔记
  12. 同步传输和异步传输原理与比较
  13. 【数学基础】欧式变换、相似变换、仿射变换、射影变换
  14. WAV文件格式解析及处理
  15. 影响不良贷款拨备覆盖率的因素分析
  16. 自己家里的电脑架设传奇外网教程
  17. svm对未知数据的分类_【干货分享】支持向量机学习「下」利用SVM对歌曲进行分类...
  18. ACM训练: 神奇的fans
  19. 软件开发的各个生命周期
  20. 使用ArchR分析单细胞ATAC-seq数据(第十四章)

热门文章

  1. wxWidgets:wxConfigBase类用法
  2. boost::replace_if相关的测试程序
  3. boost::geometry::strategy::distance::detail::projected_point_ax用法的测试程序
  4. boost::coroutine模块实现分段堆栈的测试程序
  5. GDCM:gdcm::TagPath的测试程序
  6. GDCM:DICOM PS 3.10文件格式的测试程序
  7. GDCM:gdcm::String的测试程序
  8. Boost:info hook信息挂钩的测试程序
  9. ITK:将图像投射为另一种类型
  10. VTK:可视化算法之BluntStreamlines