使用 scikit-learn 进行机器学习的基本原理-2

介绍 scikit-learn 估计器对象

每个算法都通过“Estimator”对象在 scikit-learn 中公开。 例如,线性回归是:sklearn.linear_model.LinearRegression

 估计器参数:估计器的所有参数都可以在实例化时设置:

 拟合数据

让我们用 numpy 创建一些简单的数据:

 估计参数:当数据与估计器拟合时,根据手头的数据估计参数。 所有估计参数都是估计器对象的属性,以下划线结尾:

 监督学习:分类和回归

在监督学习中,我们有一个由特征和标签组成的数据集。 任务是构建一个估计器,能够在给定特征集的情况下预测对象的标签。 一个相对简单的例子是根据一组鸢尾花的测量值来预测鸢尾花的种类。 这是一个相对简单的任务。

一些更复杂的例子是: 通过望远镜给出一个物体的多色图像,确定该物体是恒星、类星体还是星系。

给出一个人的照片,识别照片中的人。

给定一个人看过的电影列表以及他们对电影的个人评分,推荐他们想要的电影列表(所谓的推荐系统:一个著名的例子是Netflix 奖)。

提示:这些任务的共同点是,存在一个或多个与对象相关的未知量,需要根据其他观测到的量来确定。

监督学习进一步分为两类:分类和回归。

在分类中,标签是离散的,而在回归中,标签是连续的。 例如,在天文学中,确定一个物体是恒星、星系还是类星体的任务是一个分类问题:标签来自三个不同的类别。 另一方面,我们可能希望根据这样的观察来估计对象的年龄:这将是一个回归问题,因为标签(年龄)是一个连续量。

分类:K 最近邻 (kNN) 是最简单的学习策略之一:给定一个新的未知观察,在参考数据库中查找哪些具有最接近的特征并分配主要类别。 让我们尝试一下分类问题:

 

 Scikit-learn估计器接口概述

Scikit-learn致力于在所有方法中提供统一的接口,我们将在下面看到这些示例。给定一个名为model的scikit-learn估计器对象,可以使用以下方法:

model.fit():拟合训练数据。对于监督学习应用程序,它接受两个参数:数据X和标签y(例如model.fit(X,y))。对于无监督学习应用程序,它只接受一个参数,即数据X(例如model.fit(X))。

 model.predict():给定一个训练好的模型,预测一组新数据的标签。该方法接受一个参数,即新数据X_new(例如model。predict(X_new)),并返回数组中每个对象的学习标签。model.predict_proba():对于分类问题,一些估计器也提供了这种方法,它返回新观测具有每个分类标签的概率。在这种情况下,具有最高概率的标签由model.predict()返回。

 model.score():对于分类或回归问题,大多数估计器实现评分方法。分数介于0和1之间,分数越大表示拟合度越好。model.transform():给定一个无监督模型,将新数据转换为新的基。这也接受一个参数X_new,并返回基于无监督模型的数据的新表示。

model.fit_transform():一些估计器实现了这种方法,它可以更有效地对相同的输入数据执行拟合和变换。

正规化:它是什么以及为什么它是必要的

简单的模型

训练误差

假设您正在使用1-最近邻估计量。你希望你的火车上有多少错误?·训练集误差不是预测性能的良好衡量标准。你需要去掉一个测试集。·一般来说,我们应该接受火车上的错误。

正则化的一个例子

正则化背后的核心思想是,对于“更简单”的某种定义,我们将更喜欢更简单的模型,即使它们会导致训练集上更多的错误。作为一个例子,让我们生成一个9阶多项式,带噪声:现在,让我们将一个4阶和一个9阶多项式拟合到数据中。用你的肉眼,你更喜欢哪种型号,四阶的还是九阶的?让我们看看地面真相:

提示:正则化在机器学习中无处不在。大多数scikit-learn估计器都有一个参数来调整正则化的数量。例如,对于k-NN,它是“k”,即用于做出决策的最近邻居的数量。k=1相当于没有正则化:训练集上的0错误,而大k将在特征空间中推向更平滑的决策边界。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: scikit-learn是一个用于机器学习Python库。它提供了丰富的机器学习算法和工具,使得我们能够更加方便地进行数据挖掘和预测分析。 scikit-learn库内置了许多经典的监督学习和无监督学习算法,如线性回归、逻辑回归、决策树、支持向量机、聚类算法等。我们可以使用这些算法进行分类、回归和聚类等任务。此外,scikit-learn还提供了模型选择、特征选择和模型评估等功能,使得我们能够更好地进行模型优化和性能评估。 scikit-learn的优点之一是其简单易用的接口和一致的编程风格。我们只需使用相同的方法和参数即可应用不同的算法。这使得我们能够快速上手并且能够更好地理解和比较不同的算法。 此外,scikit-learn还具有丰富的文档和示例代码,使得我们能够更好地学习使用和掌握相关知识。我们可以利用这些文档和示例代码来了解算法的原理和使用方法,以及如何解决实际问题。 总之,scikit-learn是一个功能强大且易于使用机器学习库。它提供了丰富的机器学习算法和工具,使得我们能够更加便捷地进行数据挖掘和预测分析,同时也提供了方便的模型选择和模型评估功能。无论是对于初学者还是有经验的机器学习工程师来说,scikit-learn都是一个不可或缺的工具。 ### 回答2: scikit-learn是一个用于机器学习Python库。它是一个开源的工具包,提供了许多用于机器学习的算法和工具,方便用户在数据处理、特征提取、模型训练和评估等方面进行工作。 scikit-learn内置了许多经典的机器学习算法,包括回归算法、分类算法、聚类算法、降维算法等。这些算法都有统一的接口,使用起来非常方便。此外,scikit-learn还提供了用于数据预处理、特征选择、模型评估和性能提升等功能的工具和函数,使机器学习的整个流程更加简单和高效。 scikit-learn拥有广泛的应用领域,可以用于解决各种机器学习的问题。比如,可以使用scikit-learn进行文本分类、图像识别、情感分析、推荐系统等任务。scikit-learn还支持多种数据类型,可以处理结构化数据、时间序列数据和图像数据等。 使用scikit-learn进行机器学习的过程一般可以分为几个步骤。首先,需要准备并加载数据集,然后进行数据预处理,包括缺失值处理、数据标准化和特征工程等。接下来,可以选择合适的模型进行训练,并使用交叉验证的方法来评估模型的性能。最后,可以使用训练好的模型来进行预测。 总之,scikit-learn为用户提供了一个强大且易于使用机器学习工具,可以帮助用户快速构建和训练机器学习模型,从而解决实际问题。无论是对于初学者还是专业人士来说,scikit-learn都是一种强大的工具,可以极大地提高机器学习的效率和准确性。 ### 回答3: scikit-learn是一个用于数据挖掘和数据分析的Python库,也被广泛应用于机器学习领域。它提供了丰富的工具和算法,方便用户进行数据预处理、特征选择、模型训练与评估等各个环节。 首先,scikit-learn提供了大量的数据预处理工具,包括标准化、归一化、缺失值处理等。通过这些工具,我们能够快速地对原始数据进行处理,使其适合机器学习算法的使用。 其次,scikit-learn还提供了丰富的特征选择方法,帮助我们筛选出对目标变量相关性较高的特征。这些方法包括方差阈值、单变量特征选择、递归特征消除等。通过特征选择,我们能够减少特征的维度,提高模型训练的效率和准确性。 针对各种机器学习任务,scikit-learn提供了丰富的算法,如线性回归、逻辑回归、决策树、支持向量机、随机森林、K近邻等。这些算法具有良好的可解释性和表达能力,能够解决各种不同的问题。 此外,scikit-learn提供了丰富的模型评估指标和交叉验证方法,帮助我们评估模型的性能和泛化能力。通过这些评估指标,我们能够选择最优的模型,并进行模型的调参。 总之,scikit-learn是一个功能强大、易于使用且免费的机器学习库。它提供了丰富的工具和算法,帮助用户进行数据处理、特征选择、模型训练与评估等各个流程,并帮助用户构建高性能的机器学习模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子虚先生√

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值