Python中的Sklearn是什么?2024 年 8 月 29 日 | 阅读 11 分钟 我们将学习sklearn库以及如何使用它来实现机器学习算法。在现实世界中,我们不希望每次需要使用一个挑战性的算法时都从头构建它。虽然从零开始构建算法是理解其底层工作原理的绝佳方法,但我们可能无法达到所需的效率或可靠性。 Scikit-learn是一个Python模块,提供了多种监督和无监督学习技术。它基于许多您可能已经熟悉的库,包括NumPy、pandas和Matplotlib。 什么是Sklearn?Scikit-learn最初是法国研究科学家David Cournapeau通过Google Summer of Code项目启动的。它的名字来源于“SciKit”(SciPy Toolkit)的概念,这是对SciPy的一个修改,由他独立开发和发布。后来,其他程序员重写了核心代码库。 2010年,法国国家计算机科学与自动化研究所(INRIA)在Alexandre Gramfort、Gael Varoquaux、Vincent Michel和Fabian Pedregosa的指导下领导了这项工作。该项目于当年2月1日发布了第一个官方版本。2012年11月,scikit-learn和scikit-image被引用为“维护良好且受欢迎”的scikits的例子。Python的scikit-learn是GitHub上最广泛使用的机器学习包之一。 Sklearn的实现Scikit-learn主要用Python编写,并大量利用NumPy库进行高效的数组和线性代数计算。一些基本算法也使用Cython构建,以提高库的效率。支持向量机、逻辑回归和线性SVM是通过Cython为LIBSVM和LIBLINEAR编写的封装器实现的。在这种情况下,用Python扩展这些例程可能不可行。 Scikit-learn与许多其他Python包配合良好,包括SciPy、Pandas数据框、用于数组向量化的NumPy,用于绘制图形的Matplotlib、seaborn和plotly,等等。 关键概念和特性包括
分类:根据模式识别和对数据进行分类。 回归:使用历史和预期数据平均值来预测或预测数据值。 聚类:自动收集具有相关数据的多组数据集。
机器学习(ML)允许计算机通过使用输入数据来构建或训练预测模型,而无需显式编程。机器学习是人工智能的一个子集。 让我们看看它的修订历史-
开源程序的庞大社区是使用它们的主要原因之一,Sklearn在这方面也很相似。Python的scikit-learn库大约有35位贡献者,其中Andreas Mueller最为知名。 在scikit learn的主页上,列出了Evernote、Inria和AWeber等许多组织作为客户。但实际使用量远高于此。 除了这些团体,世界各地也有社区。 Scikit-learn的显著特点是
使用Scikit-Learn实现机器学习算法的好处无论您是想概述ML、希望快速上手,还是寻求最新的ML学习工具,您都会发现scikit-learn文档齐全且易于理解。有了这个高级工具包的帮助,您可以快速构建一个预测性数据分析模型,并使用它来拟合收集到的数据。它具有适应性,并且与其他Python库配合良好。 在您的系统上安装Sklearn安装Sklearn的要求
在安装scikit-learn库之前,请确保NumPy和SciPy库已安装在系统中。一旦NumPy和SciPy成功安装,安装scikit-learn最简单的方法就是使用pip。 pip install -U scikit-learn 机器学习的基本要素在使用scikit-learn之前,让我们先回顾一下ML项目中使用的一些基本术语。
在Sklearn中构建模型的步骤现在让我们来学习建模过程。 步骤1:加载数据集 简单来说,数据集是样本数据点的集合。数据集通常由两个主要部分组成: 特征: 特征本质上是数据集中的变量,通常称为预测变量、数据输入或属性。由于可能存在许多特征,因此可以使用特征矩阵来表示它们,该矩阵通常用字母“X”表示。术语“特征名称”是指所有特征名称的列表。 响应: (有时称为目标特征、标签或输出)基于变量特征,此变量是输出。在大多数情况下,我们只有一个响应列,它由响应列或向量表示(字母“y”通常用于表示响应向量)。目标名称是指响应向量可以采取的所有不同值。 步骤2:分割数据集 每个机器学习模型的正确性是一个关键考虑因素。现在,可以使用给定的数据集训练一个模型,然后使用该模型预测另一个数据集集的的目标值,以确定模型的正确性。 总而言之
步骤3:训练模型 现在是时候使用训练数据集来训练模型了,该模型将进行预测。Scikit-learn提供了各种具有易于使用的接口的机器学习技术,用于拟合、预测准确性等。 我们必须使用测试数据集测试我们的分类器。为此,我们可以使用`.predict()`模型类方法,返回预测值。 通过比较测试数据集的实际值和预测值,我们可以在sklearn方法的帮助下评估模型的性能。为此,使用了`metrics`包中的`accuracy_score`函数。 ML算法算法对于机器在没有特定编程的情况下进行学习是必不可少的。简单地说,算法只是用于计算的规则。 ML算法基本思想表示- 数据可以被组织成一种形式,以便对其进行分析。示例包括规则、模型集成、决策树、神经网络、SVM、图模型等。 评估- 评估是确定假设有效性的方法。示例包括准确率得分、均方误差、预测和召回率、概率、成本、边际和似然。 优化- 通过应用组合优化、网格搜索、约束优化等方法,优化是通过调整估计器的超参数来减少模型误差。 Scikit-Learn ML算法以下是几种典型的Scikit-learn算法和技术的列表,按复杂性递减的顺序排列: 线性回归算法示例直线斜率是称为线性回归的监督机器学习过程的预期输出。它仅用于预测特定数据点范围内的值。 代码 输出 (150, 4) (90, 4) (90,) (60, 4) (60,) Coefficients of each feature: [-0.12949807 0.03421679 0.23781661 0.60472254] Accuracy Score: 0.8885645804630061 逻辑回归算法示例逻辑回归是二元分类问题的首选方法(例如,目标值为0或1)。然后可以使用类似于线性回归的方程来评估结果(例如,某个目标值为0或1的可能性有多大?)。 代码 输出 The size of the complete dataset is: 150 Accuracy score of the predictions made by the model: 1.0 高级机器学习算法随机森林 随机森林算法在机器学习中用于执行集成学习。集成学习系统使用多个决策树和其他机器学习算法来产生比任何单一学习算法更出色的预测分析。 代码 输出 Accuracy score for the model is: 0.95 array([1]) 决策树算法 在决策树中,一个节点代表一个特征(或属性),一个分支表示一个决策函数,每个叶节点表示结论。决策树的根节点是顶部第一个节点。它获得根据属性值分割数据的能力。递归分割是重复分割树的过程。这个类似于流程图的框架有助于决策。它是一个流程图式的表示,完美地复制了人们的思考方式。因此,决策树易于理解和解释。 代码 输出 Accuracy scores: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667 0.93333333 1. 1. 1. ] Mean accuracy score: 0.96 梯度提升 当存在回归和分类问题时,我们可以使用梯度提升方法。它基于许多较小的预测模型(通常是决策树)创建预测模型。 为了工作,Gradient Boosting Classifier需要一个损失函数。除了处理自定义损失函数外,梯度提升分类器还可以接受许多标准化损失函数,但损失函数必须是可微的。 在回归技术中可以使用平方误差,但在分类算法中通常使用对数损失。在梯度提升系统中,我们不需要为每个增量提升步骤显式推导损失函数,而是可以使用任何可微的损失函数。 代码 输出 Accuracy scores: 0.9185416666666667 |
什么是数据框?如果数据以行和列或二维数据的形式存储,那么在 Pandas 中通常称为数据框。在 Pandas 中,我们可以借助 lambda 函数将任何函数添加到任何行或列。语法:lambda_Argument :...
阅读 3 分钟
在本教程中,我们将学习将 Python 列表或其他可迭代对象拆分为块的各种选项。迭代器方法:Python 中的迭代器是用于在可迭代对象(如列表、元组、字典和集合)上进行迭代的项目。迭代器对象使用...
阅读 8 分钟
在这篇文章中,我们将了解如何使用 PyQt5 制作一个数字时钟,它基本上以 24 小时格式显示时间。我们将重点制作一个 GUI,它将通过打开一个窗口以 HH:MM:SS 格式显示当前时间。以下必须是...
阅读 3 分钟
在本教程中,我们将讨论在 Python 程序中不使用第三个变量来交换两个变量(n1 和 n2)的不同方法。示例:P: 112 Q: 211 交换 P 和 Q 后:P: 211 Q: 112 方法 1:使用内置方法 内置方法可以处理任何数据类型...
阅读 3 分钟
本教程将教我们如何将元组连接成嵌套元组。有时,我们需要将单个记录转换为嵌套集合,但它们仍作为单独的元素存在。换句话说,我们将添加元组并展平结果容器;它通常是...
阅读 3 分钟
语言在人类互动中扮演着至关重要的角色。人类天生就能理解别人在说什么,并知道该如何回应。这种能力是通过多年来与他人和社会的持续交流而发展起来的。人类用于合作的语言...
阅读 10 分钟
在本文中,我们将讨论将函数作为参数传递给 Python。函数可以接受多个参数。这些参数可以是对象、变量(相同或不同数据类型)和函数。Python 函数是第一批优雅的小工具。在以下实例中,一个特性...
阅读 4 分钟
?要检查给定数字是否为完全平方数,有几种方法可以使用 Python 中的各种内置函数和各种运算符。一些主要方法如下:方法 1:使用 math 模块中的 sqrt() 函数,您可以使用 sqrt()...
阅读 3 分钟
本课程旨在对Python的数据结构和算法进行简单介绍。通过实际且经过充分解释的示例,我们将介绍列表、集合、字典、元组等内置数据结构,以及一些用户定义的数据结构,如...
21 分钟阅读
在本教程中,我们将解决排序数组中一个有趣的问题。但是有一个转折;给定的数组可能在某个索引位置旋转。这意味着排序数组中的少数元素可能在给定的位置旋转...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India