scikit-learn下k-Nearest Neighbors、Linear SVM、RBF SVM、决策树、随机森林、Adaboost、Naive bayes、LDA、QDA算法示例代码(dem)

机器学习笔记——5 生成学习算法(线性判别法LDA、二次判别法QDA及朴素贝叶斯NB算法的数学原理及其python实现) 生成学习算法(Generative Learning Algorithm) 本篇介绍另外一种分类算法,这类算法跟之前广义线性模型下的各种分类特例,比如logit分类、softmax分类等,在基本思想有根本的不同,这类算法称为生成学习算法。 本篇将首先介绍生成学习算法的基本思想,以此为基础,介绍在属性值为连续性和离散型下的两类常用的生成学习算法,分别是高斯判别分析(Guass Discriminat... 阅读详情

scikit-learn版本:0.21.3
scikit-learn对机器学习相关的算法API支持很好,这里是简单的示例代码,可以为我们提供参考。

代码如下:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_moons, make_circles, make_classification
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
from sklearn.naive_bayes import GaussianNB

# from sklearn.lda import LDA
# from sklearn.qda import QDA
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA

h = .02  # step size in the mesh

names = ["Nearest Neighbors", "Linear SVM", "RBF SVM", "Decision Tree",
         "Random Forest", "AdaBoost", "Naive Bayes", "LDA", "QDA"]
classifiers = [
    KNeighborsClassifier(3),
    SVC(kernel="linear", C=0.025),
    SVC(gamma=2, C=1),
    DecisionTreeClassifier(max_depth=5),
    RandomForestClassifier(max_depth=5, n_estimators=10, max_features=1),
    AdaBoostClassifier(),
    GaussianNB(),
    LDA(),
    QDA()]

X, y = make_classification(n_features=2, n_redundant=0, n_informative=2,
                           random_state=1, n_clusters_per_class=1)
rng = np.random.RandomState(2)
X += 2 * rng.uniform(size=X.shape)
linearly_separable = (X, y)

datasets = [make_moons(noise=0.3, random_state=0),
            make_circles(noise=0.2, factor=0.5, random_state=1),
            linearly_separable
            ]

figure = plt.figure(figsize=(27, 9))
i = 1
# iterate over datasets
for ds in datasets:
    # preprocess dataset, split into training and test part
    X, y = ds
    X = StandardScaler().fit_transform(X)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4)

    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
                         np.arange(y_min, y_max, h))

    # just plot the dataset first
    cm = plt.cm.RdBu
    cm_bright = ListedColormap(['#FF0000', '#0000FF'])
    ax = plt.subplot(len(datasets), len(classifiers) + 1, i)
    # Plot the training points
    ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright)
    # and testing points
    ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright, alpha=0.6)
    ax.set_xlim(xx.min(), xx.max())
    ax.set_ylim(yy.min(), yy.max())
    ax.set_xticks(())
    ax.set_yticks(())
    i += 1

    # iterate over classifiers
    for name, clf in zip(names, classifiers):
        ax = plt.subplot(len(datasets), len(classifiers) + 1, i)
        clf.fit(X_train, y_train)
        score = clf.score(X_test, y_test)

        # Plot the decision boundary. For that, we will assign a color to each
        # point in the mesh [x_min, m_max]x[y_min, y_max].
        if hasattr(clf, "decision_function"):
            Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
        else:
            Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]

        # Put the result into a color plot
        Z = Z.reshape(xx.shape)
        ax.contourf(xx, yy, Z, cmap=cm, alpha=.8)

        # Plot also the training points
        ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright)
        # and testing points
        ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright,
                   alpha=0.6)

        ax.set_xlim(xx.min(), xx.max())
        ax.set_ylim(yy.min(), yy.max())
        ax.set_xticks(())
        ax.set_yticks(())
        ax.set_title(name)
        ax.text(xx.max() - .3, yy.min() + .3, ('%.2f' % score).lstrip('0'),
                size=15, horizontalalignment='right')
        i += 1

figure.subplots_adjust(left=.02, right=.98)
plt.show()

代码运行结果:
各个算法运行结果

Matlab自带的分类学习工具箱(SVM、决策树、Knn等分类器) 在matlab中,既有各种分类器的训练函数,比如“fitcsvm”,也有图形界面的分类学习工具箱,里面包含SVM、决策树、Knn等各类分类器,使用非常方便。接下来讲讲如何使用。启动:点击“应用程序”,在面板中找到“Classification Learner”图标点击即启动,也可以在命令行输入“classificationlearner”,回车,也可启动。如下图:导入数据:点击“New Sessio 阅读详情

相关推荐

机器学习各种算法结果可视化比对

机器学习各种算法结果可视化比对

keepreder 4614

机器学习中SVM、决策树、逻辑回归、K近邻算法python代码实现

机器学习中SVM、决策树、逻辑回归、K近邻算法python代码实现 上篇文章咱已经叙述了如何从excel表中读取保存的数据特征及类别标签,这篇文章主要介绍机器学习中常用到的算法python代码实现方式,主要包括SVM、决策树、逻辑回归和K近邻算法。 这是上篇文章中我们使用到的数据特征,前六列是特征向量,第七列是数据标签。这篇文章默认已经把数据读出来了(如果不会读取数据的小伙伴可以去看我的上一篇文章)。 首先我们观察到x1-x6的特征相差太大,x1的单位是0.000几,而x6的单位较大有1000以上,所以这

WYKB_Mr_Q的博客 2212

LDA、QDA分类器代码(Python3).7z

LDA、QDA分类器实现Minist数据集的分类,Python3,直接运行

LDA、QDA和朴素贝叶斯

文章目录一、Linear Discriminant Analysis(LDA)1. 贝叶斯定理2. LDA (p = 1)3. LDA(p > 1)4. 结果衡量——混淆矩阵、ROC、AUC二、LDA, QDA & Naive Bayes1. QDA2. Naive Bayes 朴素贝叶斯3、总结与比较假设适用条件 通俗来说,Discriminant Analysis就是通过分别对每个分类中的X的分布进行建模,再通过贝叶斯定理得到Pr(Y∣X)Pr(Y|X)Pr(Y∣X)。 当我们假设每个

qq_48988106的博客 4091

基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型

PID_反步控制_滑膜控制三种四旋翼无人机轨迹跟踪控制算法仿真 附带对应的说明文档,提供建模过程与仿真结果文献(英文)➕PPT 描述:采用的同一种参考轨迹,都是三维仿真 三种控制方法: [1]PID控制、[2]反步控制、[3]滑膜控制(三个仿真模型) 每个仿真均应用了同一种轨迹路径,直接运行即可出三维图,可以实现四旋翼无人机轨迹的跟踪

2501_90804007的博客 1084

ChatGPT Plus完整开通指南:从账号注册到稳定使用全流程

自然语言处理(NLP)技术通过深度学习模型实现对人类语言的理解与生成,其核心原理是基于Transformer架构的大规模预训练。GPT-4作为当前最先进的生成式AI模型,在代码编写、文档分析等场景展现出显著的技术价值。在实际应用中,稳定的网络环境和合规的支付方式是确保AI助手持续服务的关键因素。针对ChatGPT Plus的开通,需要系统性地解决账号验证、虚拟信用卡支付等工程实践问题,才能实现工作流的高效整合。

weixin_34239592的博客 428

scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)...

本文来自 https://blog.youkuaiyun.com/u010900574/article/details/52666291,写的太好了。 前言:本教程主要使用了numpy的最最基本的功能,用于生成数据,matplotlib用于绘图,scikit-learn用于调用机器学习方法。如果你不熟悉他们(我也不熟悉),没关系,看看numpy和matplotlib最简单的教程就够了。我们...

ande6905的博客 682

Linux8.3上装Oracle 19c RAC,ssh互信总报INS-06006?别急着下补丁,试试这个临时替换scp的骚操作

本文针对在Linux 8.3上安装Oracle 19c RAC时遇到的SSH互信报错INS-06006问题,提供了一个无需官方补丁的临时解决方案。通过创建SCP包装脚本并添加-T参数,有效解决了OpenSSH 8.x版本与Oracle安装程序的兼容性问题,帮助用户顺利完成安装流程。

weixin_30764883的博客 403

浅谈对机器学习方法(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)的理解以及用sklearn工具实现文本分类和回归方法...

一、决策树   定下一个最初的质点,从该点出发、分叉。(由于最初质点有可能落在边界值上,此时有可能会出现过拟合的问题。 二、SVM    svm是除深度学习在深度学习出现之前最好的分类算法了。它的特征如下:   (1)它既可应用于线性(回归问题)分类,也可应用于非线性分类;   (2)通过调节核函数参数的设置,可将数据集映射到多维平面上,对其细粒度化,从而使它的特征从二维变成多维,将...

weixin_30266829的博客 1566

vscode+latex+bib文献管理

下载vscode 安装插件`` 在setting.json中配置 在.tex文件中编写论文内容,然后左侧TEX侧边栏中编译,如下图所示,中文用xelatex,英文用pdflatex;编译成功后,就可以查看pdf版本的论文了,我一般在浏览器显示。 涉及到文献编译:XXX.bib中存储文献管理内容;XXX.tex是文章内容,使用xelatex编译后会生成XXX.aux,ctrl+⋅ctrl+·ctrl+⋅打开命令行窗口,输入bibtex XXX(可以对aux文件进行编译,不需要加后缀),然后再xelatex.

小卜妞的博客 2548

移花接木,玩转CANoe的几种扩展接口应用(五)——串口设备

近期看到粉丝朋友在CANoe自动化测试方面的关注度很大,今天就围绕这个做一个专题,总结一下以往项目上用过的几种CANoe扩展接口,分享出来希望对相关领域的网友有所帮助。本文是该专题的第五篇文章,主要讲解了串口设备的功能配置、连接方法、配置方法、调用方法,最后分析了这种扩展借口应用的特点和适用场景。

Mr.Cssust的博客 2369

MLP、RBF、SVM网络比较及其应用前景

摘  要: 本文主要对MLP、RBF、SVM三种神经网络进行了详细的分析与讨论,从三种网络的结构、学习算法、功能和性能等方面进行了比较。同时,结合自己的研究方向讨论了三种结构的神经网络的应用前景。 1.      引言         神经网络(neural network,NN)是一个以有向图为拓扑结构的动态系统,它通过对连续或断续式的输入作状态响应而进行信息处理。是一个高度复杂的非线性动力

xiaoding133的专栏【Stay hungry,Stay foolish】 4万+

063.CI/CD for ML:给YOLO项目装上自动化流水线

本文分享了为YOLO目标检测项目搭建CI/CD流水线的实践经验。作者通过手动调试模型导出问题的经历,意识到重复验证工作比模型改进更耗时,提出需要自动化解决方案。文章详细介绍了四阶段流水线设计:1)代码质量检查;2)快速训练验证;3)推理性能基准测试;4)模型注册部署。同时总结了环境不一致、GPU资源争抢等常见问题及解决方案,建议从简单规则开始逐步完善,强调模型版本管理的重要性。实施后不仅提高了效率,还促使团队形成更规范的开发习惯。

2603_95664987的博客 235

(Matlab函数详解)机器学习中的4种分类算法(LDA、QDA、SVM、KNN)

1、LDA(Linear discriminant analysis) 函数:[class, err]=classify(sample, training, group); 输入:sample=待测样本,% 矩阵 m*n m为样本数,n为特征数            training=训练样本,% 矩阵k*n  k为样本数,n为特征数,                           ...

h763247747的博客 1万+

Java代码实现opc ua 事件订阅和数据变化订阅

OPC UA (Open Platform Communications Unified Architecture) 提供了两种主要的订阅机制:数据变化订阅(Data Change Subscription)和事件订阅(Event Subscription)。这两种订阅机制允许客户端实时接收来自服务器的数据更新或事件通知。

洛阳泰山的博客 2368

#systemverilog# 之 event region 和 timeslot 仿真调度(三)Verdi 辅助查看

通过今天的学习,我们知道:event region 是event sequence 的全集。我们打开了 event region feature 也就开启了event sequence 的功能。

那么菜的博客 1365

西瓜书第三章:LDA(及详细Fisher实现),QDA的python实现[仅代码实现]

西瓜书第三章:LDA(及详细Fisher实现),QDA的python实现[仅代码实现]       为了进行此实验,本人特地制作了一个训练集和一个测试集,这些测试集的参数如下: 红点 N(1,05) N(1,05) 绿点 N(2,0.5) N(2,1) 测试集具体形状如图所示:(不是训练集) 当然是用matlab生成的 ...

weixin_44813954的博客 1798

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SVM模型应该选择线性核还是高阶RBF核

SVM中常用核函数一般是线性核函数和高斯核函数。以sklearn中的SVC,提供的’linear’和’rbf’做说明。面向[n,m]原始数据集,一般的选取准则: 相对于n,m很大。比如m≥n, m=10000, n=10~1000,即(m/n)>10。考虑’linear’ m很小,n一般大小。比如m=1-1000, n=10~10000,即(m/n)在[0.0001,100]。考虑’rbf’ m很小,n很大。比如n=1-1000,m=50000+,即(m/n)在[~,0.02]。考虑’linear’.

weixin_42480762的博客 2081

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Opencv Python版学习笔记(八)字符识别-分类器(SVM,KNearest,RTrees,Boost,MLP)

Opencv提供了几种分类器,例程里通过字符识别来进行说明的 1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。 函数原型:训练原型 cv2.SVM.train(trainData, responses[, varIdx[, sampleIdx[, params]]])                    其中 trainD

gjy095的专栏 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

机器学习十大算法的简单介绍

1.线性回归 (Linear Regression) 2.逻辑回归 (Logistic Regression) 3.决策树 (Decision Tree) 4.支持向量机(SVM) 5.朴素贝叶斯 (Naive Bayes) 6.K邻近算法(KNN) 7.K-均值算法(K-means) 8.随机森林 (Random Forest) 9.降低维度算法(Dimensionality Reduction Algorithms) 10.Gradient Boost和Adaboost算法 ..

沐阳的博客 1165

机器学习-QDA&LDA

前在文章[机器学习-Bayesian概念学习,简书]中介绍了概念学习,即将一个概念与这个概念包含所有实例的集合等同,通过属于这个集合的数据来学习这个集合可能是什么。也就是说,给定属于这个集合C的一些数据D,我们希望估计一个未知的x属于集合C的概率,换个角度看,也就是估计x属于C的概率和x属于C的补集的概率。假如我们考虑多个集合C1,...Ck,则指标1,...,k可以看做label,给定带labe

cjianwyr的博客 1万+

回归模型与房价预测

from sklearn.datasets import load_boston boston = load_boston() boston.keys() print(boston.DESCR) boston.data.shape boston.feature_names import pandas as pd df = pd.DataFrame(boston.d...

weixin_30585437的博客 474

LDA与QDA

作者:桂。 时间:2017-05-23  06:37:31 链接:http://www.cnblogs.com/xingshansi/p/6892317.html  前言 仍然是python库函数scikit-learn的学习笔记,内容Regression-1.2Linear and Quadratic Discriminant Analysis部分,主要包括:     1)线性...

weixin_33749242的博客 1657

SVM分类算法实现与比较

基于SMO方法的SVM分类器实现,具体见上一篇博客: 这里主要是将自己写的SVM算法(my_SVM)与sklearnSVM算法进行比较。 代码的实现主要是基于:sklearn官方教程 遇到的主要问题: 分类模型拟合与预测的评估 生成器列表 可视化方法的具体实现 下面分别对遇到的问题展开说明 1 分类模型评估方法 实际上,sklearn中提供的各种算法模型,其一般自带的都有score方法可以用于对模型进行评估。这里为了控制变量,统一采用sklearn.metrics提供的评估方法。 详细资料点这里 适用于

HUST_YZY的博客 1727

LR、决策树、SVM的选择与对比

看到一篇很精彩的文章,特转载于此,转载源:https://www.jianshu.com/p/743cf2357b28 分类问题是我们在各个行业的商业业务中遇到的主要问题之一。本文将逻辑回归(Logistic Regression)、决策树(Decision Trees)和支持向量机(Support Vector Machine,SVM)进行对比找出每个算法的优缺点以及适合的数据形式。 上面列...

谁谓荼苦,其甘如荠 1万+
上一篇: 《聪明的投资者》笔记
下一篇: C++读写文件示例代码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值