【scikit-learn基础】--概述

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

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

  1. Scipy 基础系列
  2. 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中的一些机器学习的算法
最后介绍训练模型时和训练之后对模型的一些修正和调优的方法。

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

posted @ 2023-12-02 14:18  wang_yb  阅读(583)  评论(0编辑  收藏  举报