sklearn库简述-zstarling

2023-11-06

模型的选择与评估

划分数据集

from sklearn.model_selection import StratifiedShuffleSplit  

评估模型

用于计算真实值与预测值之间的预测误差

from sklearn.metrics import accuracy_score, log_loss     

_score结尾的函数,返回值越大,效果越好;_loss结尾的函数,返回值越小,效果越好。

监督学习

最近邻

最近邻 不仅可以用于分类,也可以用于回归

from sklearn import neighbors as  nn

# 'algorithm' 来控制, 并必须是 ['auto', 'ball_tree', 'kd_tree', 'brute'] 其中的一个。
# 当设置为默认值 'auto' 时,算法会尝试从训练数据中确定最佳方法。
model = nn.NearestNeighbors()  # 无监督最近邻
model = nn.KNeighborsClassifier()  # 最近邻分类:基于每个查询点的 k 个最近邻实现,其中 k 是用户指定的整数
model = nn.RadiusNeighborsClassifier()  # 最近邻分类:基于每个查询点的固定半径 r 内的邻居数量实现, 其中 r 是用户指定的浮点数值。
model = nn.KNeighborsRegressor()  # 最近邻回归:基于每个查询点的 k 个最近邻实现,其中 k 是用户指定的整数
model = nn.RadiusNeighborsRegressor()  # 最近邻回归:基于每个查询点的固定半径 r 内的邻居数量实现, 其中 r 是用户指定的浮点数值。

支持向量机(SVM)

支持向量机不仅可以用于回归分析(SVR),也可以用于分类(SVC),也可以用于模式识别和异常检测。

from sklearn import svm
# SVM 主要针对的是多分类
# 核函数kernel:参数选择有RBF, Linear, Poly, Sigmoid, 默认的是"RBF";
model=svm.LinearSVC() # 线性核函数(one-vs-rest)的支持向量分类
model=svm.NuSVC()# 核函数可选择(one-vs-one)的核支持向量分类
model=svm.SVC () # 核函数可选择(one-vs-one)的支持向量分类
model=svm.LinearSVR()# 线性核函数的支持向量回归
model=svm.NuSVR() # 核函数可选择(one-vs-one)的核支持向量回归
model=svm.SVR ()  # 核函数可选择的支持向量分类回归
model=svm.OneClassSVM() # 一个用于离群点检测的单类SVM

在这里插入图片描述

决策树

from sklearn.tree import DecisionTreeClassifier

决策树用于做分类

集成方法

集成方法不仅可以用于回归,也可以用于分类

from sklearn import ensemble as esm

# 分类
model = esm.BaggingClassifier()  # 平均方法:Bagging 元估计器
model = esm.RandomForestClassifier()  # 平均方法:随机森林
model = esm.AdaBoostClassifier()  # boosting方法:AdaBoost
model = esm.GradientBoostingClassifier()  # boosting方法:梯度提升树(既支持二分类又支持多分类)
model = esm.VotingClassifier()  # 投票分类器
#  回归
model = esm.BaggingRegressor()  # Bagging 元估计器
model = esm.RandomForestRegressor()  # 随机森林
model = esm.AdaBoostRegressor()  # AdaBoost
model = esm.GradientBoostingRegressor()  # 梯度提升数
model = esm.VotingRegressor()  # 投票回归器

集成方法分为两种 平均方法和boosting方法

  • 平均方法,该方法的原理是构建多个独立的估计器,然后取它们的预测结果的平均。一般来说组合之后的估计器是会比单个估计器要好的,因为它的方差减小了。eg: Bagging 方法 , 随机森林 , …

  • boosting 方法中,基估计器是依次构建的,并且每一个基估计器都尝试去减少组合估计器的偏差。这种方法主要目的是为了结合多个弱模型,使集成的模型更加强大。eg: AdaBoost , 梯度提升树 ,

朴素贝叶斯

朴素贝叶斯属于生成方法,其他的属于判别方法。朴素贝叶斯仅用于分类

from sklearn import naive_bayes as nb

model=nb.GaussianNB()  # 高斯朴素贝叶斯
model=nb.MultinomialNB() # 多项式分布朴素贝叶斯
model=nb.ComplementNB() # 补充朴素贝叶斯
model=nb.BernoulliNB() # 伯努利朴素贝叶斯

线性回归

仅用于回归

from sklearn import linear_model as lm

model = lm.LinearRegression()  # 普通线性回归
model = lm.ridge_regression()  # 岭回归
model = lm.RidgeCV()  # 交叉验证法的岭回归
model = lm.Lasso()  # Lasso回归
model = lm.LassoCV()  # 基于交叉验证算法的Lasso回归
model = lm.LassoLars()  # 基于最小角回归算法的lasso回归  (适用于样本数量比特征数量少的多的情况)
model = lm.LassoLarsCV()  # 基于交叉验证 最小角回归算法的lasso回归  (适用于样本数量比特征数量少的多的情况)
model = lm.ElasticNet()  # 弹性网络
model = lm.LogisticRegression()  # 解决二分类(0 or 1)问题的分类方法

#  多任务Lasso及多任务弹性网络
model = lm.MultiTaskLasso()  # 采用了坐标下降法求解参数。
model = lm.MultiTaskLassoCV()  # 通过交叉验证来设置参数
model = lm.MultiTaskElasticNet()  # 采用了坐标下降法求解参数。
model = lm.MultiTaskElasticNetCV()  # 通过交叉验证来设置参数

随机梯度下降

适用于分类 ,也适用于回归。

from sklearn import linear_model as lm
# `在拟合模型前,确保重新排列了(打乱)训练数据,或者使用 shuffle=True 在每次迭代后打乱训练数据。`
model = lm.SGDClassifier()  # one-vs-rest分类
model = lm.SGDRegressor()  # 非常适用于有大量训练样本(>10.000)的回归问题,

判别分析

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis

判别分析主要包括两类:线性判别分析 LinearDiscriminantAnalysis和非线性判别分析QuadraticDiscriminantAnalysis

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sklearn库简述-zstarling 的相关文章

  • celery任务eta已关闭,使用rabbitmq

    我使用教程中的默认设置和在 ubuntu 上运行的rabbitmq 使 Celery 任务正常进行 当我毫不延迟地安排任务时 一切都很好 但是当我给他们一个预计时间时 他们会被安排在未来 就好像我的时钟在某个地方关闭了一样 下面是一些请求任
  • 需要根据数据框中的行号应用不同的公式

    我正在努力在数据框中找到某种移动平均值 该公式将根据正在计算的行数而变化 实际场景是我需要计算Z列 Edit 2 以下是我正在使用的实际数据 Date Open High Low Close 0 01 01 2018 1763 95 176
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • 删除 tkinter 文本默认绑定

    我正在制作一个简单的 tkinter 文本编辑器 但我想要所有默认绑定文本小部件如果可能的话删除 例如当我按Ctrl i它默认插入一个制表符 我制作了一个事件绑定来打印文本框中有多少行 我将事件绑定设置为Ctrl i以及 当我运行它时 它会
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • 在多核上运行 python 线程

    我知道Python 2 7不允许在不同的内核上运行多个线程 你需要使用multiprocessing模块以实现某种程度的并发性 我正在看concurrent futuresPython 3 4 中的模块 是否使用ThreadPoolExec
  • 对法语文本进行词形还原[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些法语文本需要以某种方式进行处理 为此 我需要 首先 将文本标记为单词 然后对这些单词进行词形还原以避免多次处理相同的词根 据我
  • matplotlib:渲染到缓冲区/访问像素数据

    我想使用 matplotlib 生成的图作为 OpenGL 中的纹理 到目前为止 我遇到的 matplotlib 的 OpenGL 后端要么不成熟 要么已经停止使用 所以我想避免使用它们 我当前的方法是将图形保存到临时 png 文件中 并从
  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 右键单击 QPushButton 上的 contextMenu

    对于我的应用程序 我在 Qt Designer 中创建了一个 GUI 并将其转换为 python 2 6 代码 关于一些QPushButton 与设计器创建 我想添加右键单击上下文菜单 菜单选项取决于应用程序状态 如何实现这样的上下文菜单
  • Python FTP下载550错误

    我编写了一个 ftp 爬虫来下载特定文件 它会一直工作 直到找到要下载的特定文件 然后抛出此错误 ftplib error perm 550 该文件存在于我的下载文件夹中 但文件大小为 0 kb 我需要转换某些内容才能下载吗 我可以访问 f
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • Pygame:有人可以帮我实现双跳吗?

    我知道已经有其他关于此问题的帖子了 但我的运动系统与我发现的有点不同 所以随后我问这个问题 我的运动系统基于一个名为的命名元组Move up left right down 然后就是这个 def update self move block
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • 将二进制数据视为文件对象?

    在此代码片段 由另一个人编写 中 self archive是一个大文件的路径并且raw file是以二进制数据形式读取的文件内容 with open self archive rb as f f seek offset raw file s

随机推荐

  • laravel查看sql语句

    方法一 我们有时候想测试一段代码生产的 SQL 语句 比如 我们想看 App User all 产生的 SQL 语句 我们简单在 routes php 做个实验即可 app Http routes php Route get test sq
  • Caused by: java.lang.NoClassDefFoundError: org/apache/curator/shaded/com/google/common/collect/Maps

    出现上述错误 我发现的原因是 springboot版本和Curator版本不对应 springboot是1 5 Curator版本为4 0 我是这么解决的 Curator版本改为2 7 0
  • Python文件直接操作文件描述符open的大坑

    17 fr1 open file1 readlines 18 fr2 open file2 readlines 如果是fr2 open file2 那么for 嵌套循环会报错 19 sh dict 20 cnt mil 0 21 cnt e
  • Lombok中@Slf4j 注解报错

    1 检查项目中是否引入lombok的依赖
  • springboot运行时内存溢出_SpringBoot 使用 Caffeine 本地缓存

    点击上方 SpringForAll社区 轻松关注 及时获取有趣有料的技术文章 本文来源 http www mydlq club article 56 一 本地缓存介绍 二 缓存组件 Caffeine 介绍 1 Caffeine 性能 2 C
  • 双色球笔记3--输出所有中奖号码

    双色球笔记3 输出所有中奖号码 1 功能 本文主要根据中奖类别输出所有中奖号码 双色球奖项分为6种 如下所示 一等奖 6 1 中奖概率为 红球33选6乘以蓝球16选1 1 17721088 0 0000056 二等奖 6 0 中奖概率为 红
  • ❤ElementUI Table表格

    ElementUI Table表格操作 一 实战部分一 1 表格基础属性 1 表格赋值数据 data
  • 通过 jd-gui 查看 jeeSite 的framework

    最近有一个单体应用开发 综合比对下选择了jeeSite 前端虽有瑕疵 后台功能确实做的不错 一切准备就绪 环境搭建好了 准备开发 需要修改角色信息 发现代码当中竟然没有 后来查看了下maven仓库下的jeesite framework 4
  • Qt信号与槽传递自定义数据类型

    Qt信号与槽之间传递typedef定义的数据类型或其他类型 在编译时不报错 但在执行时会报如下错误 QObject connect Cannot queue arguments of type elemType Make sure elem
  • R语言报错记录The following objects are masked from ‘package:stats’:decompose, spectrum

    报错记录 大家好 这里是想做生信大恐龙 的生信小白 这是一条简短的报错记录 参考了其他博主的方法 如有侵权 请联系删除 报错记录 报错记录 报错原因 解决方法 总结 报错原因 使用R语言第三方包 igraph 时出现了以下报错 The fo
  • 【Qt教程】3.5 - Qt5 QPainter绘图抗锯齿、相对坐标/平移坐标系、QPainter画图片、手动调用QPainter绘图事件

    GitHub源码仓库 Qt学习例程 1 QPainter绘图抗锯齿 抗锯齿测试 painter drawEllipse QPoint 100 50 50 50 设置 抗锯齿能力 抗锯齿会让绘图效率较低 painter setRenderHi
  • CVPR 2021

    双图层实例分割 物体的互相遮挡在日常生活中普遍存在 严重的遮挡易带来易混淆的遮挡边界及非连续自然的物体形状 从而导致当前已有的检测及分割等的算法性能大幅下降 本文通过将图像建模为两个重叠图层 为网络引入物体间的遮挡与被遮挡关系 从而提出了一
  • pip install PIL 报错

    使用 pip install PIL 时报如下错误 Collecting PIL Could not find a version that satisfies the requirement PIL from versions No ma
  • kubernetes常用命令汇总

    1 查询命名空间 kubectl get ns 2 查询服务名 kubectl get po 3 查询对应命名空间下的服务名 kubectl n namespace get po 4 根据命名空间下某个服务的查询日志 kubectl n n
  • Git1 基础

    1 什么是git 1 1 简介 GIT是一种分布式版本控制系统 通俗点说版本控制就是当文档写错了 能够让你回退到之前某个正确的版本 给你一着悔棋 1 2 版本控制系统 1 2 1 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不
  • 服务器虚拟化优缺点

    将服务器物理资源抽象成逻辑资源 让一台服务器变成几台甚至上百台相互隔离的虚拟服务器 我们不再受限于物理上的界限 而是让CPU 内存 磁盘 I O等硬件变成可以动态管理的 资源池 从而提高资源的利用率 简化系统管理 实现服务器整合 让IT对业
  • java语言特点和跨平台原理

    Java语言 1 java的三大版本 JavaSE J2SE java的标准版本定位在客户端 主要用于桌面应用软件的编程 JavaEE 定位在服务器端java2的企业版 主要用于分布式网络程序的开发 如电子商务网站 JavaME J2ME主
  • 实验:使用SSMS创建并管理数据库及其基本表

    目录 题目要求 1 创建数据库 2 创建三个表 3 修改限制条件 4 创建及管理约束条件 5 录入基本数据 6 数据的更改和插入 7 分离与附加数据库 题目要求 实验课程 数据库系统原理 专业 计算机科学与技术 班级 实验日期 姓名 学号
  • Qt信号与槽的各种连接方式

    信号槽是 Qt 框架引以为豪的机制之一 当用户触发某个事件时 就会发出一个信号 signal 这种发出是没有目的的 类似广播 如果有对象对这个信号感兴趣 它就会连接 connect 绑定一个函数 称为槽slot 来处理这个信号 也就是说当信
  • sklearn库简述-zstarling

    文章目录 模型的选择与评估 划分数据集 评估模型 监督学习 最近邻 支持向量机 SVM 决策树 集成方法 朴素贝叶斯 线性回归 随机梯度下降 判别分析 模型的选择与评估 划分数据集 from sklearn model selection