iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >【机器学习基础 3】 sklearn库
  • 937
分享到

【机器学习基础 3】 sklearn库

机器学习sklearnpython 2023-09-04 05:09:41 937人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录 一、sklearn库简介 二、sklearn库安装 三、关于机器学习 四、sklearn库在机器学习中的应用 1、数据预处理 2、特征提取 3、模型选择与评估 五、常用的sklearn函数 1、数据集划分 2、特征选择 3、特征缩放

目录

一、sklearn库简介

二、sklearn库安装

三、关于机器学习

四、sklearn库在机器学习中的应用

1、数据预处理

2、特征提取

3、模型选择与评估

五、常用的sklearn函数

1、数据集划分

2、特征选择

3、特征缩放

4、模型训练

5、模型预测


一、sklearn库简介

        Scikit-learn(简称sklearn)是一个用于机器学习python库,它包含了许多常用的机器学习算法、预处理技术、模型选择和评估工具等,可以方便地进行数据挖掘数据分析。 Scikit-learn建立在NumPy、SciPy和Matplotlib之上。

二、sklearn库安装

pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple/比如我们要安装 sklearn 1.1.1版本,那么:pip install scikit-learn==1.1.1 -i Https://pypi.tuna.tsinghua.edu.cn/simple

注意:我们在sklearn库的学习和练习过程中,所需的 sklearn 版本不一定要最新 or 最好的,因为里面可能会有一些东西在新版本被移除了,比如:load_boston(波士顿房价数据)在最新版已被移除,因此建议安装 sklearn 1.1.1版本

三、关于机器学习

在认识sklearn库前,我们要知道机器学习一般分为四个基本的步骤:

        ① 数据的收集和准备 → 包括数据的清洗、变换、归一化和特征提取等操作;

        ② 模型选择和训练 → 选择一个合适的机器学习模型,并使用收集的数据对其进行训练(什么问题选择什么模型);

        ③ 模型评估 → 训练完成后对模型在新数据上的表现进行评估;

        ④ 模型部署和优化 → 将模型部署到实际环境中,并对其进行优化,包括压缩、加速、调参;

在这四个步骤中,最宝贵的是数据的收集和准备(一批好的数据蛮贵的)。当然,在解决机器学习问题中最困难的是② 模型的选择,不同的模型更适合不同类型的数据和不同的问题。

具体可以看下表:(源自官网Choosing the right estimator — scikit-learn 1.2.2 documentation

 

四、sklearn库在机器学习中的应用

1、数据预处理

sklearn.preprocessing模块提供了一些常用的数据预处理函数,如缩放、标准化、二值化等,可以用来对原始数据进行处理和转换,使其更适合机器学习算法的处理。

例如:

from sklearn import preprocessingimport numpy as np# 创建一些随机数据data = np.random.rand(5, 2)# 标准化数据scaler = preprocessing.StandardScaler().fit(data)scaled_data = scaler.transfORM(data)print(scaled_data)

样例输出:

[[-0.36369316 -0.88624935] [ 1.60663227  0.65821309] [-0.94306714 -0.8578848 ] [ 0.67229355  1.65105326] [-0.97216552 -0.56513221]]

2、特征提取

sklearn.feature_extraction模块提供了一些常用的特征提取函数,如文本特征提取、图像特征提取等,可以用来从原始数据中提取有用的特征,以便用于机器学习算法的处理。

例如:

from sklearn.feature_extraction.text import CountVectorizer# 创建一些文本数据corpus = [    'This is the first document.',    'This is the second second document.',    'And the third one.',    'Is this the first document?',]# 提取文本特征vectorizer = CountVectorizer()X = vectorizer.fit_transform(corpus)print(X.toarray())

样例输出:

[[0 1 1 1 0 0 1 0 1] [0 1 0 1 0 2 1 0 1] [1 0 0 0 1 0 1 1 0] [0 1 1 1 0 0 1 0 1]]

3、模型选择与评估

sklearn.model_selection模块提供了一些常用的模型选择和评估工具,如交叉验证、网格搜索、评估指标等,可以用来选择最优的模型和调整模型参数,以及评估模型的性能。

例如:

from sklearn.model_selection import GridSearchCVfrom sklearn import svm, datasets# 加载数据iris = datasets.load_iris()# 定义模型和参数parameters = {'kernel': ('linear', 'rbf'), 'C': [1, 10]}svc = svm.SVC()# 进行网格搜索clf = GridSearchCV(svc, parameters)clf.fit(iris.data, iris.target)# 输出最优模型参数和得分print(clf.best_params_)print(clf.best_score_)

样例输出:

{'C': 1, 'kernel': 'linear'}0.9800000000000001

五、常用的sklearn函数

1、数据集划分

        函数:train_test_split

        用途:将数据集划分为训练集和测试集,以便用于模型的训练和评估

样例:

from sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_iris# 加载数据集iris = load_iris()# 划分数据集X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)

样例输出:

(120, 4) (30, 4) (120,) (30,)

2、特征选择

        函数:SelectKBest

        用途:选择与目标变量最相关的K个特征,以提高模型的性能和效率。

样例:

from sklearn.datasets import load_breast_cancerfrom sklearn.feature_selection import SelectKBest, f_classiffrom sklearn.model_selection import train_test_splitfrom sklearn.svm import SVC# 加载数据集data = load_breast_cancer()# 划分数据集X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)# 特征选择selector = SelectKBest(score_func=f_classif, k=10)X_train_new = selector.fit_transform(X_train, y_train)X_test_new = selector.transform(X_test)# 训练模型clf = SVC()clf.fit(X_train_new, y_train)# 评估模型score = clf.score(X_test_new, y_test)print("Accuracy:", score)

        上述示例中,首先加载了一个乳腺癌数据集,然后使用train_test_split函数将数据集划分为训练集和测试集。接下来,使用SelectKBest函数进行特征选择,选择了10个最相关的特征,然后将训练集和测试集中的特征向量转换为只包含选择的特征向量的新特征向量。最后,使用支持向量机模型训练新的特征向量和目标变量,然后使用测试集评估模型性能。

3、特征缩放

        函数:StandardScaler

        用途:将特征缩放到均值为0、方差为1的范围内,以便提高模型的训练速度和准确性

 样例:

from sklearn.datasets import load_irisfrom sklearn.preprocessing import StandardScaler# 加载数据集iris = load_iris()# 缩放数据集scaler = StandardScaler()X_scaled = scaler.fit_transform(iris.data)print(X_scaled[:5])

样例输出:

[[-0.90068117  1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265  0.32841405 -1.39706395 -1.3154443 ] [-1.50652052  0.09821729 -1.2833891  -1.3154443 ] [-1.02184904  1.24920112 -1.34022653 -1.3154443 ]]

4、模型训练

        函数:fit

        用途:对数据进行训练,以得到一个机器学习模型。

 样例:

from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifier# 加载数据集iris = load_iris()# 训练决策树模型clf = DecisionTreeClassifier()clf.fit(iris.data, iris.target)print(clf)

5、模型预测

        函数:predict

        用途:对新数据进行预测,以得到模型的输出结果。

样例:

from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifier# 加载数据集iris = load_iris()# 训练决策树模型clf = DecisionTreeClassifier()clf.fit(iris.data, iris.target)# 预测新数据y_pred = clf.predict([[5.1, 3.5, 1.4, 0.2]])print(y_pred)

输出:

[0]

 

来源地址:https://blog.csdn.net/yewanyuan/article/details/129628590

--结束END--

本文标题: 【机器学习基础 3】 sklearn库

本文链接: https://www.lsjlt.com/news/393004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【机器学习基础 3】 sklearn库
    目录 一、sklearn库简介 二、sklearn库安装 三、关于机器学习 四、sklearn库在机器学习中的应用 1、数据预处理 2、特征提取 3、模型选择与评估 五、常用的sklearn函数 1、数据集划分 2、特征选择 3、特征缩放...
    99+
    2023-09-04
    机器学习 sklearn python
  • 机器学习---sklearn
    1.Sklearn简介 sklearn (全称 Scikit-Learn) 是基于 Python 语言的机器学习工具,Sklea是处理机器学习 (有监督学习和无监督学习) 的包。它建立在 NumPy...
    99+
    2023-09-01
    sklearn 机器学习 python
  • python学习-3 python基础-
    1.基础知识 ~后缀名是可以是任意的 ~导入模块时,如果不是.py就会报错 =》》所以尽量后缀名携程.py 2.执行方式 -python解释器 3.   #!/usr/bin/env python          -----------...
    99+
    2023-01-31
    基础 python
  • linux 基础学习入门 3
    linux day 3第三天内容并不明确, 自我总结内部命令 用 help command   或  man bash外部命令 用 command --help 或  command -h使用手册 man command信息页 info c...
    99+
    2023-01-31
    入门 基础 linux
  • python基础学习3----列表
    一.字符格式化输出 占位符 %s s = string 字符串           %d d = digit 整数           %f f = float 浮点数 name = input("Name:") age = int...
    99+
    2023-01-30
    基础 列表 python
  • jsp基础学习资料(3)
      会话状态维持是应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用、隐藏的表单输入域,或直接将状态信息附加到中。提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。也同样支持中的这个概念。  在...
    99+
    2023-01-31
    学习资料 基础 jsp
  • CCIE学习(3)——基础知识回顾
    ●以太网标准 1)10BASE5:粗同轴电缆传输 2)10BASE2:细同轴电缆传输 3)10BASE-T:第一个使用双绞线传输的以太网标准 4)DIX Ethernet Version 2:原始以太...
    99+
    2023-01-31
    基础知识 CCIE
  • Python机器学习之基础概述
    目录一、基础概述二、算法分类三、研究内容一、基础概述 机器学习(Machine Learing)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...
    99+
    2024-04-02
  • 机器学习之基础知识(全)
    目录 1.机器学习概述 1.1 人工智能概述 1.1.1 人工智能使用场景 1.1.2 人工智能小案例 1.2 人工智能发展历程 1.2.1 图灵测试 1.2.2 发展历程 1.2.3 小结 1.3 人工智能主要分支 1.3.1 人工智能、...
    99+
    2023-08-31
    机器学习
  • python 基础学习
    #此代码关于python函数调用的理解学习#还不明白这段代码如何实现调用的!!!def apply_twice(func, arg):return func(func(arg)) def add_five(x):return x + 5 p...
    99+
    2023-01-31
    基础 python
  • HoneyDrive_3基础学习
    20161219 08:51——09:30 这篇博文记录HoneyDrive_3_Royal_Jelly(1)系统应用整体的简介和(2)初期准备或相关具体功能的介绍说明,和(3)HoneyDrive_3的基本使用或基础理论。参考:Honey...
    99+
    2023-01-31
    基础
  • PHP基础学习
    第一章、PHP基础 PHP是一种适合Web开发的编程语言,运行于服务器端,可以在C/S架构中为客户端软件提供服务器接口,又可以在B/S上作为架构来搭建动态网站。(本篇文章以B/S架构为基础) Apache为PHP提供工作环境 Apache ...
    99+
    2023-09-12
    php 学习 开发语言
  • Python基础学习
    第一个 Python 程序:Hello Worldprint("Hello World!")Python 控制流:if-else, if-elif-else:    if-else 语法:if 判断条件:     执行语句…… else: ...
    99+
    2023-01-31
    基础 Python
  • python机器学习sklearn实现识别数字
    目录简介数据集数据处理数据分离训练数据数据可视化完整代码简介 本文主要简述如何通过sklearn模块来进行预测和学习,最后再以图表这种更加直观的方式展现出来 数据集 学习数据 预测数...
    99+
    2024-04-02
  • python机器学习pytorch 张量基础教程
    目录正文1.初始化张量1.1 直接从列表数据初始化1.2 用 NumPy 数组初始化1.3 从另一个张量初始化1.4 使用随机值或常量值初始化2.张量的属性3.张量运算3.1 标准的...
    99+
    2024-04-02
  • 【17】Python100例基础练习(3
    例11:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律1,1,2,3,5,8,13,21... ...方法1:使用def d...
    99+
    2023-01-31
    基础
  • objective-c 基础学习
    目录 第一节:OC 介绍 ​​第二节:Fundation 框架 ​第三节:NSLog 相对于print 的增强 ​第四节:NSString ​第五节:oc新增数据类型 第六节: 类和对象 ​类的方法的声明与实现 ​第七节:类和对象的存储 ...
    99+
    2023-10-12
    objective-c 学习 开发语言
  • python基础学习2
    一.算数运算符 +加法,-减法,*乘法,/除法,//地板除,%求余,**幂运算。 二.逻辑运算符 非not、且and、或or。优先级依次为not,and,or。 三.print()end结尾 print()#默认为print(end="...
    99+
    2023-01-30
    基础 python
  • Python基础学习(二)
    Python函数总结 一、函数的基本用法 1、概念: 函数是对程序逻辑进行结构化或是过程化的一种编程方法,其是组织好的,可重复使用的,用来实现单一,或者相同功能的代码段。 函数提高了应用点的模块性和代码的重复利用率 本质:函数是对功...
    99+
    2023-01-30
    基础 Python
  • python基础学习3_if_for
    if用于条件判断,如果满足条件就执行否则就继续直到结束,熟悉shell条件判断就觉得so easy格式:if condition1:  execute commandelif condition2:  execute commandelse...
    99+
    2023-01-31
    基础 python _if_for
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作