sklearn基础概述

2023年 9月 22日 57.2k 0

Scikit-learn是一个基于Python的开源机器学习库,它提供了大量的机器学习算法和工具,方便用户进行数据挖掘、分析和预测。

Scikit-learn是基于另外两个知名的库 ScipyNumpy的,关于 ScipyNumpy 等库,之前的系列文章中有介绍:

  • Scipy 基础系列
  • Numpy 基础系列
  • 1. 概要

    自从AlphaGo再度带起机器学习和AI的热潮以来,我们听到最多的机器学习框架是 TensorFlowPyTorch以及Keras等等。

    Scikit-learn与它们相比,知名度要低不少,这是因为Scikit-learn库关注的是传统的机器学习领域中经典的,被广泛应用和验证的算法。它完全不涉及TensorFlowPyTorch以及Keras等框架所在的深度学习领域。

    虽然看起来Scikit-learn似乎远远不如那些流行的深度学习框架,但从我个人的经验来看的话,学习和掌握Scikit-learn的意义远远大于那些深度学习框架。

    首先,Scikit-learn历史悠久,发展至今,不仅提供了丰富的文档和参考样例,甚至连训练数据都准备好了,随时都可以拿来实验机器学习算法。

    其次,深度学习虽好,但是使用要求也高。除了掌握其算法,还必须有大量的数据和高性能的硬件,这绝不是个人和普通企业所能提供的。未来,大概率是由几个头部大企业训练出模型,然后开放API给我们使用,个人和中小企业训练自己的深度学习模型的概率并不高。

    Scikit-learn则与之不一样,它所包含的传统机器学习中的很多优秀算法并不需要海量的数据,在数据量不大的情况下依旧可以训练出优秀的模型。

    最后,就我自己平时的数据分析相关项目的实践来看,Scikit-learn是一个真正称手的工具。我平时的项目中会接触到各类数据,比如气象数据,销售数据,还有一些交易类的数据等等,由于服务的客户规模不大,所以数据量一般最多也就千万级别。使用Scikit-learn,能够方便快速的从这些数据中分析出有意义结果。

    举个不太恰当的例子,目前流行的深度学习框架相对于Scikit-learn,就像飞机相对于自行车或小汽车。学会开飞机后,可能实操的机会并不多(除非你在大厂的AI部门);但是学会骑车和开车,总会有用到它的地方,而且由于其便利简单,还会越用越多。

    2. 主要模块

    Scikit-learn的主要功能包括数据预处理,模型选择,数据降维,分类,回归和聚类等。

    • 数据预处理包括数据的特征提取、归一化、标准化等。
    • 模型选择是对给定参数和模型进行比较、验证和选择,以提升预测精度。
    • 数据降维是通过降维技术来减少要考虑的随机变量的个数,常见的应用场景有可视化处理、效率提升等。
    • 分类是给对象指定所属类别范畴的有监督学习,常见的应用场景有垃圾邮件检测、图像识别等。
    • 回归是预测与给定对象相关的连续属性的值,常见的应用场景有预测股票价格、预测二手房交易价格等。
    • 聚类是自动识别具有相似属性的给定对象,并将其分组,属于无监督学习,常见的应用场景有顾客细分、实验结果分组等。

    从功能上看,涵盖了机器学习从数据处理开始,到各类模块训练算法,最后到模型的验证和调优等完整的生命周期。

    3. 系列文章规划

    Scikit-learn的子模块划分非常细,从命名空间来看的话,大概有接近40个模块。分别介绍各个子模块意义不大,不如直接看官方文档,本系列的文章打算从使用者的角度来介绍它。

    先从数据和数据处理的角度入手,然后结合自己工作中的实际经验介绍Scikit-learn中的一些机器学习的算法,最后介绍训练模型时和训练之后对模型的一些修正和调优的方法。

    希望能够对喜爱数据分析的朋友们有所帮助!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论