当前位置: 首页 > 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;方便开发者…...

Java中的基本循环结构详解

在Java编程中&#xff0c;循环是控制流的重要组成部分&#xff0c;用于重复执行一段代码。Java提供了三种基本的循环结构&#xff1a;for循环、while循环和do-while循环。本文将详细介绍这三种循环的语法和使用场景&#xff0c;并通过示例代码展示其应用。 一&#xff0c;for …...

关于Git Bash中如何定义alias

一、在一次临时Bash会话中使用alias 在Bash中直接输入alias xxdddd&#xff0c;xx为对应要执行的命令的缩写&#xff0c;dddd为要执行的命令&#xff0c;如alias ddcd /d&#xff0c;输入完成后&#xff0c;在Bash中输入dd&#xff0c;即可切换至D盘。 此种设置方式&#xff…...

luckfox1106初次使用

luckfox1106初次使用 下载rk驱动 https://files.luckfox.com/wiki/Luckfox-Pico/Software/DriverAssitant_v5.12.zip 安装驱动 SD 卡烧录工具 https://files.luckfox.com/wiki/Luckfox-Pico/Software/SocToolKit_v1.98_20240705_01_win.zip 右键以管理员方式运行...

ab命令深入解析:ApacheBench性能测试工具

软考鸭微信小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 引言 在Web开发和运维领域&#xff0c;性能测试是评估服务器和应用性能的重要手段。ApacheBench&#xff08;简称ab&#xff09;是Apache HTTP服务器自带的…...

VSCode创建VUE项目(二)前端登录页面

一.创建登录页面 代码&#xff1a; <template><div class"login-container dis-h"><div class"login-form dis-h"><div class"dis-v left"><span> 欢迎~ </span><span> VUE 新世界 </span>&l…...

centos 8.4学习小结

1.权限委派 2.vim快捷方式 2.1非正常关闭文本处理方式 2.2快捷方式 2.3TAB键补齐安装包 [ rootcloud Packages]# rpm -ivh bash-completion-2.7-5.el8.noarch.rpm 2.4#history 查询历史记录 [rootcloud ~]# vim /etc/profile HISTSIZE1000&#xff08;默认保存1000条历史记…...

AI 设计工具合集

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏AI_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; ​ 前言: AI 视频&#xff0c;科技与艺术的精彩融合。它借助先进的人工智能技术&#xff0c;为影像创作带来全新可能。本书…...

mac 源代码安装openresty

1. clone源代码 git clone https://github.com/openresty/openresty.git 2. 安装依赖包 brew install hg unix2dos brew install pcre openssl 3. 编译 make 4. 安装openresty cd openresty-1.27.1.1 ./configure --prefix/opt/openresty --with-http_ssl_module --with-…...

人工智能和机器学习之线性代数(二)

人工智能和机器学习之线性代数(二) 本文Linear Algebra 101 for AI/ML – Part 2将通过介绍向量的点积(dot Product)、Embedding及其在相似性搜索中的应用来建立这些基础知识。 将学习Embedding&#xff0c;Embedding是表示概念、对象和想法的特殊类型的向量。Embedding在整个…...

Postman中的form-data 和 JSON 的区别

在使用 Postman 进行 API 测试时&#xff0c;form-data 和 JSON 是两种常用的请求体格式&#xff0c;它们有以下几个主要区别&#xff1a; 1. 数据格式 form-data: 主要用于表单数据的提交&#xff0c;适合文件上传和键值对的数据传递。数据以键值对的形式编码&#xff0c;类似…...