当前位置: 首页 > news >正文

【升华】人工智能python重要库scikit-learn学习

一、人工智能python重要库scikit-learn

在人工智能10大算法中,有8个算法都导入了 sklearn库

from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LinearRegression
from sklearn import metrics

# 导入所需的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

等等。说明 sklearn在人工智能,机器学习方面已经不可或缺,同时它也包含了大量有用的算法封装函数。总得来说,10大算法中的数学问题,均被封装在这些函数当中,我们在实际的模型构建过程中只是拿来主义。

Sklearn 全称 Scikit-learn。它涵盖了分类、回归、聚类、降维、模型选择、数据预处理六大模块,降低机器学习实践门槛,将复杂的数学计算集成为简单的函数,并提供了众多公开数据集和学习案例。

官方文档:https://scikit-learn.org

二分析学习sklearn中各种模块的作用

1、Sklearn 库的 dataset 模块

 

加载数据集

Sklearn 库的 dataset 模块集成了部分数据分析的经典数据集,可以使用这些数据集进行数据预处理、建模等操作,熟悉 Sklearn 的数据处理流程和建模流程。

datasets模块常用数据集的加载函数与解释如下表所示

使用 Sklearn 进行数据预处理会用到 Sklearn 提供的统一接口——转换器(Transformer)。

加载后的数据集可以视为一个字典,几乎所有的 Sklearn 数据集均可以使用 data、target、feature_names、DESCR 分别获取数据集的数据、标签、特征名称和描述信息。

from sklearn.datasets import load_breast_cancer # 导入乳腺癌患者数据
cancer = load_breast_cancer()                   # 实例化对象
print(cancer.keys())                            # 查看字典
print(cancer['data'].shape)                     # 查看数据结构
print(cancer['target'].shape)                   # 查看单个标签
# print(cancer['DESCR'])                        # 查看数据集介绍
print(cancer['filename'])                       # 查看数据集所处的位置dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
(569, 30)
(569,)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/sklearn/datasets/data/breast_cancer.csv

 

划分数据集

Sklearn 的 model selection 模块提供了 train_test_spilt 函数,能够对数据集进行拆分,其使用格式如下:

sklearn.model_selection.train_test_spilt(arrays,options)

X_train, X_test, y_train, y_test = train_test_split(train_data, train_target, test_size, random_state,shuffle)

 

将数据集划分训练集和测试集,典型的划分方式是训练集占总样本的80%,测试集占总样本的20%:

  • 训练集 train set:用于训练模型
  • 验证集 validation set:用于训练过程中模型性能评估
  • 测试集 test set:用于检验最终的模型的性能

train_test_spilt 函数根据传入的数据,分别将传入的数据划分训练集和测试集。如果传入的是1组数据,那么生成的就是这一组数据随机划分后的训练集和测试集,总共2组。如果传入的是2组数据,则生成的训练集和测试集分别2组,总共4组。train_test_spilt 是最常用的数据划分方法,在 model_selection 模块中还提供了其他数据集划分的函数,如 PredefinedSplit、ShuffleSplit 等。

使用 Sklearn 转换器处理数据

在数据分析过程中,各类特征处理相关操作都需要对训练集和测试集分开操作,需要将训练集的操作规则、权重系数等应用到测试集中。如果使用 Pandas,则应用至测试集的过程相对繁琐,使用 sklearn 转化器(transformer)可以解决这一困扰。使用 Sklearn 转换器能够实现对传入的 Numpy 数组进行标准化处理、归一化处理、二值化处理、PCA 降维等操作。

 

使用 Sklearn 构建并评价聚类模型

聚类与分类的区别在于聚类不依赖于预先定义的类,没有预定义的类和样本——聚类是一种无监督的数据挖掘任务。

聚类的概念

  • 聚类是把各不同的个体分割为有更多相似性子集合的工作
  • 聚类生成的子集合称为簇

聚类的要求

  • 生成的簇内部的任意两个对象之间具有较高的相似度
  • 属于不同簇的两个对象间具有较高的相异度
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
iris = load_iris()# 实例化K-Means聚类算法类
k_means = KMeans(n_clusters=3)    # 类中心个数为3
k_means.fit(iris['data'])         # 执行聚类操作print(iris.target)                # 查看聚类标签
print(k_means.labels_)            # 查看各样本聚类标签,聚类标签顺序前后无所谓,重要的是这些样本是不是同一类
print(k_means.cluster_centers_)   # 查看各聚类中心,因为每个样本有四个值,这里展示同一类样本的中心值

使用 Sklearn 构建并评价分类模型

使用 Sklearn 构建并评价回归模型

 

使用 Sklearn 构建并评价逻辑回归模型

数据集介绍

鸢尾花数据(iris)数据集一共有150行数据,每行包含5个变量,其中4个特征变量,1个目标分类变量。

共有150个样本,目标变量为“花的类别”其都属于鸢尾属下的三个亚属,分别是变色鸢尾(Iris-versicolor)、山鸢尾(Iris-setosa)和维吉尼亚鸢尾(Iris-virginica)。

包含的三种鸢尾花的四个特征,分别是花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)、花瓣宽度(petal width)。

 

任务描述

使用 Sklearn 实现鸢尾花分类,根据鸢尾花的花萼和花瓣大小将其分为三种不同的品种。

配置环境

# 基础函数库
import numpy as np 
import pandas as pd# 绘图函数库
import matplotlib.pyplot as plt
import seaborn as sns# 导入逻辑回归模型函数
from sklearn.linear_model import LogisticRegression
from sklearn import metrics

加载数据

# 利用 sklearn 中自带的 iris 数据作为数据载入
from sklearn.datasets import load_iris# 得到数据特征
data = load_iris()# 得到数据对应的标签
iris_target = data.target# 利用Pandas转化为DataFrame格式
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names)

相关文章:

【升华】人工智能python重要库scikit-learn学习

一、人工智能python重要库scikit-learn 在人工智能10大算法中,有8个算法都导入了 sklearn库 from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn import metrics # 导入所需的库 from sklea…...

Stable Diffusion Web UI 大白话术语解释 (二)

归纳整理,Stable Diffusion Web UI 使用过程中,相关术语 ControlNet ControlNet 说简单点,就是你可以给 AI 一些“规则”,比如让它根据某些线条、结构或者骨架去画图。 这样能让 AI 画出更符合你要求的图片,特别适合画…...

vue-vben-admin 首页加载慢优化 升级vite2到vite3

我的vben-admin是2.8版本的,首次首页加载太慢了,升级下vite,原来1分钟,现在20s左右 1.修改package.json 添加 "terser": "^5.14.2",修改 "vitejs/plugin-legacy": "^2.0.0","vitejs/plugin-vue": "^3.0.1",&qu…...

集合框架07:LinkedList使用

1.视频链接:13.14 LinkedList使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p142.LinkedList集合的增删改查操作 package com.yundait.Demo01;im…...

一区鱼鹰优化算法+深度学习+注意力机制!OOA-TCN-LSTM-Attention多变量时间序列预测

一区鱼鹰优化算法深度学习注意力机制!OOA-TCN-LSTM-Attention多变量时间序列预测 目录 一区鱼鹰优化算法深度学习注意力机制!OOA-TCN-LSTM-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.基于OOA-TCN-LSTM-Attenti…...

Cesium 黑夜效果

Cesium 黑夜效果 原理: 根据相机到片元的距离雾化场景的后处理效果 效果:...

leetcode动态规划(二)-斐波那契数列

题目 509.斐波那契数列 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0…...

【MySQL】增删改查-进阶(一)

目录 🌴数据库约束 🚩约束类型 🚩NOT NULL 🚩UNIQUE 🚩DEFAULT 🚩PRIMARY KEY 🚩FOREIGN KEY 🚩CHECK 🎄表的设计 🚩一对一 🚩一对多 …...

MacOS RocketMQ安装

MacOS RocketMQ安装 文章目录 MacOS RocketMQ安装一、下载二、安装修改JVM参数启动关闭测试关闭测试测试收发消息运行自带的生产者测试类运行自带的消费者测试类参考博客:https://blog.csdn.net/zhiyikeji/article/details/140911649 一、下载 打开官网,…...

OpenCV高级图形用户界面(6)获取指定窗口中图像的矩形区域函数getWindowImageRect()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 提供窗口中图像的矩形区域。 该函数 getWindowImageRect 返回图像渲染区域的客户端屏幕坐标、宽度和高度。 函数原型 Rect cv::getWindowImage…...

SpringColoud GateWay 核心组件

优质博文:IT-BLOG-CN 【1】Route路由: Gateway的基本构建模块,它由ID、目标URL、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。 Route路由-动态路由实现原理: 配置变化Apollo 服务地址实例变化…...

5.计算机网络_抓包工具wireshark

安装 Linux中安装wireshark: sudo apt-get install wireshark Linux中执行wireshark: sudo wireshark 使用 注意:只有与外网交互的数据才可以被wireshark抓到,本机回环的数据不会被抓到 实验内容: 使用nc命令…...

基于Java的车辆管理系统的设计与实现-计算机毕业设计源码41727

摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对车辆管理系统等问题,对车辆管理…...

在软件开发中低耦合和高内聚是什么,如何实现,请看文章

软件开发中,“低耦合”和“高内聚”是设计原则,用于提高系统的可维护性、可扩展性和可重用性。下面我会详细解释这两个概念及其带来的好处和规避的坏处。 低耦合(Low Coupling) 定义: 低耦合指的是模块之间的依赖关系…...

关于MyBatis-Plus 提供Wrappers.lambdaQuery()的方法

实例&#xff1a; private LambdaQueryWrapper<XXX> buildQueryWrapper(XXXBo bo) { Map<String, Object> params bo.getParams(); LambdaQueryWrapper<XXX> lqw Wrappers.lambdaQuery(); lqw.eq(bo.getOrgId() ! null, XXX::getOrgId, bo.getOrgId()); lq…...

C++——vector的了解与使用

目录 引言 vector容器的基本概念 1.功能 2.动态大小 3.动态扩展 vector的接口 1.vector的迭代器 2.vector的初始化与销毁 3.vector的容量操作 3.1 有效长度和容量大小 (1)使用示例 (2)扩容机制 3.2 有效长度和容量操作 (1)reserve (2)resize 4.vector的访问操作…...

Ubuntu设置静态IP地址

Ubuntu如果是最小安装&#xff0c;没有图形界面&#xff0c;需要配置静态IP&#xff0c;该怎么操作呢&#xff1f; Netplan 是最新版 Ubuntu 的默认网络管理工具。Netplan 的配置文件使用 YAML 编写&#xff0c;扩展名为 .yaml。 注意&#xff1a;配置文件中的空格是语法的一部…...

力扣349.两个数组的交集

题目链接&#xff1a;349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,…...

FreeRTOS - 软件定时器

在学习FreeRTOS过程中&#xff0c;结合韦东山-FreeRTOS手册和视频、野火-FreeRTOS内核实现与应用开发、及网上查找的其他资源&#xff0c;整理了该篇文章。如有内容理解不正确之处&#xff0c;欢迎大家指出&#xff0c;共同进步。 1. 软件定时器 软件定时器也可以完成两类事情…...

Python的Atlassian第三方库的详细介绍

atlassian-python-api 是一个用于与 Atlassian 生态系统进行交互的 Python 库&#xff0c;支持与多种 Atlassian 工具&#xff08;如 Jira、Confluence、Bitbucket 等&#xff09;进行 API 调用。它简化了 REST API 的调用&#xff0c;提供了高层次的抽象&#xff0c;方便开发者…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...