sklearn基础学习
1. 简介
1.1 什么是sklearn
sklearn,或者更正式地称为scikit-learn,是一个基于Python的开源机器学习库。它建立在NumPy、SciPy和matplotlib之上,提供了简单而有效的工具用于数据挖掘和数据分析。sklearn支持监督学习和无监督学习算法,包括分类、回归、聚类和降维等。
1.2 sklearn的主要功能
- 数据预处理:提供标准化、归一化、填充缺失值等工具。
- 特征选择与提取:支持PCA、LDA等降维技术,以及特征选择方法。
- 模型选择与评估:提供交叉验证、网格搜索等模型选择和评估工具。
- 监督学习:包括分类和回归算法,如SVM、决策树、随机森林、逻辑回归等。
- 无监督学习:包括聚类、降维算法,如K-means、DBSCAN、t-SNE等。
- 集成学习:支持Bagging、Boosting等方法,如AdaBoost、Gradient Boosting等。
2. 安装sklearn
你可以通过pip或conda来安装sklearn。以下是使用pip安装的命令:
pip install scikit-learn |
如果你使用的是conda环境,可以使用以下命令:
conda install scikit-learn |
3. 数据预处理
在使用sklearn进行机器学习之前,数据预处理是非常关键的一步。它包括数据清洗、特征缩放、特征编码等。
3.1 特征缩放
特征缩放可以帮助提升机器学习算法的性能和稳定性。sklearn提供了多种特征缩放工具:
- StandardScaler:用于特征的标准化,即将特征值缩放到均值为0,方差为1的分布。
- MinMaxScaler:将特征数据缩放到一个指定的范围(通常是0到1)。
- MaxAbsScaler:将每个特征缩放到[-1, 1]的范围内,通过除以每个特征的最大绝对值来实现。
- RobustScaler:使用中位数和四分位数范围(IQR)来缩放特征,对有许多离群点的数据集特别有用。
- Normalizer:将每个样本缩放到单位范数,即使得每个样本的L1或L2范数为1。
3.2 数据清洗
数据清洗包括处理缺失值、异常值、重复值等。sklearn提供了SimpleImputer来处理缺失值,可以选择用平均值、中位数或众数填充。
3.3 编码分类特征
对于分类数据,需要将其转换为机器学习模型可以理解的数值形式。sklearn提供了LabelEncoder(用于单个分类特征)和OneHotEncoder(用于多个分类特征)等工具来实现这一功能。
4. 加载数据集
sklearn自带了一些用于示例和测试的数据集,如鸢尾花数据集(Iris dataset)、波士顿房价数据集(Boston housing dataset)等。以下是如何加载鸢尾花数据集的示例:
from sklearn.datasets import load_iris | |
iris = load_iris() | |
X = iris.data # 特征数据 | |
y = iris.target # 目标标签 |
5. 划分数据集
在训练模型之前,通常需要将数据集划分为训练集和测试集。sklearn提供了train_test_split函数来实现这一功能:
from sklearn.model_selection import train_test_split | |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) |
6. 训练模型
sklearn提供了多种内置的机器学习算法。以下是如何使用逻辑回归算法训练模型的示例:
from sklearn.linear_model import LogisticRegression | |
model = LogisticRegression() | |
model.fit(X_train, y_train) |
7. 模型评估
训练好模型后,我们需要评估其在测试集上的性能。sklearn提供了各种评估指标,如准确率、精确率、召回率、F1分数等。以下是如何计算模型准确率的示例:
from sklearn.metrics import accuracy_score | |
y_pred = model.predict(X_test) | |
accuracy = accuracy_score(y_test, y_pred) | |
print("Accuracy:", accuracy) |
8. 交叉验证
为了更准确地评估模型的性能,可以使用交叉验证(Cross-Validation)。sklearn提供了cross_val_score函数来实现这一功能:
from sklearn.model_selection import cross_val_score | |
scores = cross_val_score(model, X_train, y_train, cv=5 |
相关文章:
sklearn基础学习
1. 简介 1.1 什么是sklearn sklearn,或者更正式地称为scikit-learn,是一个基于Python的开源机器学习库。它建立在NumPy、SciPy和matplotlib之上,提供了简单而有效的工具用于数据挖掘和数据分析。sklearn支持监督学习和无监督学习算法&#…...
SpringBoot 自动配置原理
一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操 作。 思考: SpringBoot 是如何知道要创建哪个 Bean 的?比如 SpringBoot 是如何知道要创建 RedisTemplate 的? …...
Redisson中RQueue的使用场景附一个异步的例子
RQueue 是一个基于 Redis 的分布式作业队列系统,它允许开发者在 Ruby 应用程序中实现异步任务处理和计划任务调度。由于 Redis 提供了高性能的内存数据结构存储,RQueue 可以快速地存储和检索队列中的任务,这使得它非常适合于高并发和低延迟的…...
SpringMVC 控制层框架-下
五、SpringMVC其他扩展 1. 异常处理机制 1.1 异常处理概念 开发过程中是不可避免地会出现各种异常情况,例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题,甚至直接导致程序崩溃。因此,在开发过程中&a…...
(四)js前端开发中设计模式之工厂方法模式
工厂方法模式,通过对产品类的抽象,使其创建业务主要用于负责创建多类产品的实例 const Java function (content) {this.content content;(function () {let oDiv document.createElement(div)oDiv.innerHTML contentoDiv.style.color greendocument.getElement…...
新版GPT-4omini上线!快!真TM快!
大半夜,OpenAI突然推出了GPT-4o mini版本。 当我看到这条消息时,正准备去睡觉。mini版本质上是GPT-4o模型的精简版本,没有什么革命性的创新,因此我并没有太在意。 结果今天早上一觉醒来发现伴随GPT-4o mini上线,官网和…...
【Unity】RPG2D龙城纷争(十七)敌方常规AI(Normal)的实现
更新日期:2024年7月24日。 项目源码:第五章发布(正式开始游戏逻辑的章节) 索引 简介一、AI_Normal类二、AI调遣策略第一阶段:收集1.提供战场数据收集方法2.收集战场数据三、AI调遣策略第二阶段:评估四、AI调遣策略第三阶段:行动简介 AI_Normal定位为框架自带的最基础的…...
Tracy 小笔记:微信小程序 mpx 雷达图的实现
使用文档: https://www.kancloud.cn/xchhhh/wx-chart/399337 https://github.com/xiaolin3303/wx-charts https://gitee.com/mirrors/wx-charts/#wx-charts 参数说明: https://github.com/xiaolin3303/wx-charts/issues/56 下载 dist 里的 wx-charts-…...
Unity UGUI 之 Input Field
本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.Input Field是什么? 给玩家提供输入的输入框 2.重要参数 中英文对照着看…...
SpringBoot接入mongodb例子,并有增删改查功能
1,首先,在pom.xml中添加依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><!--上面这…...
类和对象(三)
目录 一. 构造函数初始化列表 二. 类型转换 三. static成员 四. 友元 五. 内部类 六. 匿名对象 七. 对象拷贝时的编译器优化 一. 构造函数初始化列表 1. 之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式&…...
Android SurfaceFlinger——GraphicBuffer初始化(二十九)
在 SurfaceFlinger 中,GraphicBuffer 是一个关键的数据结构,用于封装和管理图形数据的内存缓冲区。它不仅在 SurfaceFlinger 内部使用,也被其他组件如 GPU 驱动、摄像头服务、视频解码器等广泛利用,以实现高效的数据交换和图形渲染。 一、概述 GraphicBuffer 对象封装了一…...
pytest:4种方法实现 - 重复执行用例 - 展示迭代次数
简介:在软件测试中,我们经常需要重复执行测试用例,以确保代码的稳定性和可靠性。在本文中,我们将介绍四种方法来实现重复执行测试用例,并显示当前迭代次数和剩余执行次数。这些方法将帮助你更好地追踪测试执行过程&…...
一文入门SpringSecurity 5
目录 提示 Apache Shiro和Spring Security 认证和授权 RBAC Demo 环境 Controller 引入Spring Security 初探Security原理 认证授权图示编辑 图中涉及的类和接口 流程总结 提示 Spring Security源码的接口名和方法名都很长,看源码的时候要见名知意&am…...
IPython的HTML魔法:%%html_header命令全解析
IPython的HTML魔法:%%html_header命令全解析 在IPython和Jupyter Notebook中,%%html_header是一个魔术命令,它允许用户在Notebook的单元格中添加HTML头部(head)内容。这个功能特别有用,当你需要定制Notebo…...
将SQL中的占位符替换成参数
将SQL中的占位符替换成参数 描述 描述 此方法是将SQL中的${}或#{}替换为直接拼接到SQL中或直接替换为?的形式。具体详情看下面代码。 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** author HuYu* date 2023-09-21* since 1.0**…...
锁相环 vivado FPGA
原理 同步状态/跟踪状态:相位差在2kπ附近,频率差为0到达上述状态的过程称为捕获过程锁相环的捕获带:delta w的最大值,大于这个值的话就不能捕获鉴相器(PD-phase discriminator):相乘加LPF&…...
英语科技写作 希拉里·格拉斯曼-蒂(英文版)pdf下载
下载链接: 链接1:https://pan.baidu.com 链接2:/s/1fxRUGnlJrKEzQVF6k1GmBA 提取码:b69t 由于是英文版,可能有些看着不太方便,可以在网页版使用以下软件中英文对照着看,看着更舒服,…...
《Dynamic Statistical Learning in Massive Datastreams》论文阅读笔记
论文地址: https://www3.stat.sinica.edu.tw/ss_newpaper/SS-2023-0195_na.pdf 论文题目翻译:《在大规模数据流中的动态统计学习》 核心观点: 动态跟踪和筛选框架(DTS):论文提出了一个在线学习和模型更新的新框架&…...
【数据分享】2008-2022年我国省市县三级的逐日NO2数据(excel\shp格式)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据和2013-2022年的省市县三级的逐日SO2数据(均可查看之前的文章获悉详情)! 本次…...
如何快速配置HomeAssistant格力空调本地控制组件:完整操作指南
如何快速配置HomeAssistant格力空调本地控制组件:完整操作指南 【免费下载链接】HomeAssistant-GreeClimateComponent Custom Gree climate component written in Python3 for Home Assistant. Controls ACs supporting the Gree protocol. 项目地址: https://git…...
3个场景解密LeagueAkari:如何让英雄联盟游戏效率提升300%
3个场景解密LeagueAkari:如何让英雄联盟游戏效率提升300% 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari…...
从零开始学流程图:GESP C++二级考试中的三种基本结构详解
从零开始学流程图:GESP C二级考试中的三种基本结构详解 在编程学习的道路上,流程图就像是一张清晰的地图,能够帮助初学者直观地理解程序运行的逻辑路径。特别是对于准备GESP C二级考试的考生来说,掌握流程图的绘制和解读技巧&…...
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在数字时代,文件压缩已…...
别再只调包了!手把手拆解OpenCV车位识别核心代码:像素统计、背景建模与形态学处理
从像素到决策:OpenCV车位识别核心技术实战解析 停车场监控画面中那些看似简单的"空"或"满"状态判定,背后隐藏着一系列精妙的图像处理魔法。今天,我们将抛开现成的API,直接解剖计算机视觉在车位检测中的核心算…...
Python办公自动化:用PyMuPDF+pdfplumber一键提取PDF文字/图片/表格(附完整代码)
Python办公自动化实战:PyMuPDF与pdfplumber高效提取PDF三要素 每天面对堆积如山的PDF文档,行政和财务人员最头疼的莫过于手动复制粘贴文字、截图保存图片、重新绘制表格。我曾见过一位财务同事为了处理200份供应商报价单,连续加班一周手工录入…...
终极指南:如何在Chainer中构建强大的循环神经网络(RNN)
终极指南:如何在Chainer中构建强大的循环神经网络(RNN) 【免费下载链接】chainer A flexible framework of neural networks for deep learning 项目地址: https://gitcode.com/gh_mirrors/ch/chainer 想要掌握深度学习中的序列建模吗?Chainer框架…...
3个技巧快速掌握LeagueAkari:英雄联盟智能辅助工具实战指南
3个技巧快速掌握LeagueAkari:英雄联盟智能辅助工具实战指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为BP阶…...
Llama-3.2V-11B-cot多轮对话效果展示:复杂技术问题拆解与解答
Llama-3.2V-11B-cot多轮对话效果展示:复杂技术问题拆解与解答 最近在测试各种大模型时,我特意找了一个比较“刁钻”的场景:让模型来解答一个复杂的系统设计问题。这类问题通常不是一两句话能说清的,它需要模型有很强的逻辑推理能…...
AI辅助开发实战:基于CosyVoice和LeeZhao的智能代码生成优化
在AI辅助开发的浪潮中,我们这些开发者既兴奋又头疼。兴奋的是,动动嘴皮子或者写几句描述,AI就能帮我们生成代码框架,大大提升了效率。头疼的是,生成的代码常常“驴唇不对马嘴”,要么上下文理解跑偏…...
