sklearn框架介绍

sklearn与经典机器学习算法

sklearn

在学习的过程中,除了需要深入理解底层原理时,其实就需要避免重复的造轮子的过程,Python的强大的库就是一个非常好玩的功能

既能避免重复造轮子,还能快速的调用对应的api来使用功能

在机器学习领域的scikit-learn是一个非常常用的机器学习框架,我们将使用sklearn来说实现经典的机器学习算法

sklearn简介

sklearn是一款07年至今的机器学习开源项目,基于NumPy和SciPy,提供了很多用于数据挖掘和分析的工具和接口

sklearn主打一个只做机器学习,不轻易支持新的算法,他的好处就是非常稳定

我们可以用几行代码就完成机器学习的七个步骤

数据处理

读取数据并进行预处理,归一化、标准化、正则化等内容

分割数据

数据随机分割成三组,训练集、验证集(可以没有)、测试集

训练模型

针对选取好的特征,使用训练数据来构建模型,拟合数据,寻找最优的模型参数

这里的拟合数据主要是使用各种机器学习算法来学习数据中的特征,拟合出损失函数最小的参数

验证模型

接入验证集给模型,我们将模型在验证集上的表现作为参数优化和选择的依据,常用的方法有Holdout验证,留一验证等

测试模型

评估模型的泛化性能

需要说明的是,验证集和测试集合分开是有一定必要的,主要是因为经过多轮测试集的调整,测试集也会变为训练集,从而产生过拟合的现象,因此测试集一般也不参与模型优化

调优模型

当我们的模型通过测试时,投入使用,其实在这个过程中也是不断训练的过程,收集更全面的数据,使用不同的特征,调整参数来优化模型

sklearn功能

sklearn的功能主要分六部分:分类、回归、聚类、数据降维、模型选择、数据预处理、

分类

如果只是定性的预测,也就是预测结果是一个离散值,就可以称之为分类,sklearn已经实现的经典分类算法包括:支持向量机、最邻近算法、Logistic回归、随机森林、决策树、多层感知器等

回归

如果是定量的预测,也就是预测结果是连续值,就称之为回归,比如预测房价,股票等。经典回归算法有:线性回归、支持向量回归、岭回归、Lasso回归、贝叶斯回归等

聚类

聚类是将相似的对象进行分组,跟分类有一点像。常见的算法有:k均值聚类、谱聚类、均值漂移等。这种算法一般用在客户细分、实验结果分组、数据压缩

数据降维

数据降维主要是用于减少随机变量的数量。常见的算法有:主成分分析、特征选择、非负矩阵分解等。一般用于数据压缩、模型优化

模型选择

模型选择就是用于评估和验证模型了,对模型的参数进行选择与平衡。sklearn有很多模块可以实现功能,包括模型度量、网格搜索、交叉验证。主要是用于调整模型参数来提高模型性能

数据预处理

数据预处理就是把输入的数据转换为机器学习算法适用的数据,文本、图像等内容,主要就是包括数据特征的抽取和归一化,常用的模块是数据预处理,特征抽取等

我们这里只是做一个非常简略的介绍,具体使用方法还是需要参考官方文档,可以通过pip3命令安装sklearn

pip3 install scikit-learn

目前的规划是,接下来我们会逐步学习并使用一些常见的机器学习算法,线性回归、k-临近算法、Logistic回归、神经网络学习算法、k均值聚类,然后我们再学习机器学习的一个分支——深度学习,同样也是通过样例来实践

相关推荐

  1. sklearn框架介绍

    2024-05-11 13:14:11       10 阅读
  2. sklearn.pipeline的用法介绍

    2024-05-11 13:14:11       8 阅读
  3. sklearn【Accuracy】准确度介绍和案例学习!

    2024-05-11 13:14:11       14 阅读
  4. Vue框架介绍简介

    2024-05-11 13:14:11       10 阅读
  5. symfony框架介绍

    2024-05-11 13:14:11       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-11 13:14:11       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-11 13:14:11       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-11 13:14:11       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-11 13:14:11       20 阅读

热门阅读

  1. 如何打造个人IP?

    2024-05-11 13:14:11       8 阅读
  2. 【Golang】判断数组中是否包含指定元素

    2024-05-11 13:14:11       9 阅读
  3. git提交代码异常报错error:bad signature 0x00000000

    2024-05-11 13:14:11       9 阅读
  4. 《21天学通C++》(第二十一章)理解函数对象

    2024-05-11 13:14:11       12 阅读
  5. 定时监控 Docker 服务

    2024-05-11 13:14:11       10 阅读
  6. 学习心得:如何开始学习一款MCU

    2024-05-11 13:14:11       11 阅读