大家好,今天给各位分享机器学习框架sklearn(scikitlearn)的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
sklearn简介
2007年,数据科学家David Cournapeau等人发起了机器学习开源项目sklearn,至今已经存在十多年了。到目前为止,它已经成为一个非常成熟且知名的机器学习框架。
sklearn 是一个基于NumPy 和SciPy 的开源Python 机器学习库。它提供了大量的数据挖掘和分析工具,以及一系列支持多种算法的接口。与其他开源项目类似,sklearn 也是由社区成员自愿组织和维护的。与其他开源项目不同,sklearn 更加“保守”。但这里的“保守”并不是贬义,而是指“可靠”。
sklearn的可靠性主要体现在两个方面:sklearn非常具体,永远不会扩展到机器学习领域之外; sklearn 非常务实,从不轻易支持未经广泛验证的机器学习算法。比如现在流行的“深度学习”就不在它的视线之内。它想要“让子弹飞一会儿”。一定程度的“保守”并不是坏事,它会让sklearn因专注而变得更加专业。
sklearn 与机器学习的7个步骤
作为一个“成熟稳定”的机器学习框架,sklearn提供了许多有用的API(应用程序编程接口)。通常,我们只需几行代码就可以成功完成机器学习的7个过程,如下。
1)数据处理
从磁盘读取数据并对数据进行预处理,如归一化、标准化、正则化、属性缩放、特征编码、缺失值插值、多项式特征生成等。
2)分割数据
将数据随机分为三组:训练集、验证集(有时可选)和测试集。
3)训练模型
对于选定的特征,利用训练数据建立模型,即拟合数据,找到最优的模型参数。这里的拟合数据主要是指利用各种机器学习算法来学习数据中的特征并拟合损失函数以最小化参数。
4) 验证型号
使用验证集的数据访问模型。我们使用模型在验证集上的性能作为模型参数优化和选择的基础。常用的方法有Holdout验证、留一交叉验证等。
5)测试模型
优化模型参数后,利用测试数据验证模型的性能,评估模型的泛化性能。这里需要说明的是,在某些场景下,测试模型和验证模型是存在差异的。如果我们不设置验证集,不断地使用同一个测试集来评估模型性能,久而久之,作为“裁判”的测试集就会慢慢“转变”为训练集,导致模型陷入过拟合。状态。
为了解决这个问题,有时将数据集分为三部分:一部分用于训练,即作为训练集;一部分用于训练,即作为训练集。一部分用于模型优化,即作为验证集;最后一部分用于评估模型的泛化误差,即测试集通常不参与模型的优化。
6)使用模型
俗话说“养兵千日,用一时”。模型训练完成后,就该“上战场”,对新的数据集进行预测了。所有机器学习算法的最终价值都体现在对新数据的预测上。过去的历史数据(即训练数据)的价值在于“喂养”可靠的数据预言家,对我们从未接触过的新数据做出预测,从而指导我们未来的行为方向,实现基于数据的预测。 “洞察力”。
7)调整模型
当我们继续使用更多的数据(包括新的数据进行预测)时,我们会得到反馈,然后根据反馈重新调整数据使用策略,包括收集更全面的数据、使用不同的特征、调整过去的模型参数等。用于迭代优化模型。其实上面的1到7可以看作是一个无限循环、迭代升级的过程。
sklearn的功能
sklearn的功能主要分为六部分:分类、回归、聚类、数据降维、模型选择和数据预处理。
如下图是其官网截图,
简单来说,如果定性的输出预测是(预测变量是离散值),就可以称为分类,比如预测鲜花的类别、顾客是否会购买该产品等。sklearn中实现的经典分类算法包括:支持向量机(SVM)、最近邻算法、逻辑回归、随机森林、决策树、多层感知器(MLP)等。
相比之下,如果进行定量的输出预测(预测变量是连续值),则称为回归,例如预测鲜花的生长、房价的上涨等。目前sklearn中实现的回归算法包括:线性回归、支持向量回归(SVR)、Lasso回归、贝叶斯回归等。常见的应用场景包括股价预测等。
聚类的作用就是将相似的对象自动分组。 sklearn中常用的聚类算法包括:k-means聚类、谱聚类、均值平移等。常见的应用场景包括客户细分、实验结果分组、数据压缩等。
数据降维的目的是减少需要考虑的随机变量的数量。 sklearn中常见的数据降维算法包括主成分分析(PCA)、特征选择(feature choice)、非负矩阵分解(non-车辆矩阵分解)等。常见的应用场景包括数据压缩、模型优化等。
模型选择是指评估和验证模型,以及选择和平衡模型参数。 sklearn提供了很多有用的模块来实现很多常用功能,包括模型度量、网格搜索、交叉验证等,目的是通过调整模型参数来提高模型性能(预测精度、泛化误差等)。
数据预处理的作用是将输入数据(如文本、图形、图像等)转换为适合机器学习算法的数据,主要包括数据特征的提取和归一化。在sklearn中,常用的模块包括数据预处理、特征提取等。
以上是简单罗列了scikit-learn的一些知识点。更多信息可以参考scikit-learn官网。以下是英文和中文的官方网站主页。
scikit-learn 英语官网
scikit-learn中文官网
sklearn不仅功能强大,而且官方文档也很齐全。它为每个算法提供了简明的参考案例。官网教程截图如下
scikit-learn中文版教程
总结:
1)sklearn完成机器学习(参考7个步骤)
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/114499.html
用户评论
来瓶年的冰泉
机器学习入门选用sklearn确实是个好选择!API设计简单易懂,上手快,而且功能丰富全面,无论是分类、回归还是聚类,都能找到合适的算法。还有很多例子和文档可以参考,很适合新手学习。
有20位网友表示赞同!
如梦初醒
sklearn太赞了!之前用过其他的机器学习框架,感觉复杂度太高,效率也不够理想。sklearn就不同了,操作简洁高效,而且性能也很优秀,关键是可以快速实现实验验证的效果。
有11位网友表示赞同!
岁岁年年
我一直在想学机器学习,但是总是觉得那些复杂的框架门槛太高了。突然看到这篇介绍sklearn的文章,感觉很有希望!简单易用,功能强大,正好适合我这种入门小白。
有11位网友表示赞同!
抓不住i
我是个有一定经验的开发人员,平常都使用其他比较专业的机器学习框架。最近想在个人项目中尝试一下sklearn,发现它真的非常便携轻量级!而且能够快速上手确实很给力。
有6位网友表示赞同!
一个人的荒凉
说实话,我觉得sklearn虽然入门友好,但对于复杂的任务来说,性能可能没办法和一些更高级的框架相比。比如深度学习,如果需要用到GPU加速等功能,sklearn就显得不够灵活了。
有16位网友表示赞同!
素婉纤尘
对新手来说,sklearn的确是个不错的选择,但建议大家在深入学习后,也不妨尝试其他一些更强大的机器学习框架,拓宽自己的思路和视野。
有18位网友表示赞同!
爱你心口难开
我曾经用过sklearn做了一些简单的分类项目,感觉挺好用的!代码简洁易读,运行速度也很快。缺点就是模型的可解释性相对较弱,对于需要深入理解模型内部机制的任务来说可能不太合适。
有18位网友表示赞同!
灼痛
学习机器学习是一件很有趣的事情,而且sklearn能帮助我轻松入门!从一篇简单的教程开始,就能尝试一些基本算法,然后慢慢探索更深层次的知识。
有18位网友表示赞同!
肆忌
最近在研究自然语言处理的任务,用sklearn做了些文本分类实验,效果还不错,但是对于复杂的数据集处理,比如处理大规模文本数据,还是需要考虑其他更专业的工具。
有15位网友表示赞同!
容纳我ii
觉得sklearn的文档和例子做得很好,特别适合像我这样初级学习者的入门。希望官方能够继续完善相关资源,让它更加完善全面。
有11位网友表示赞同!
?亡梦爱人
sklearn的确很强大,但对于我来说有点过于复杂了!我希望可以有更简单易懂的教学内容,帮助我更快地掌握机器学习的基本概念和技能。
有14位网友表示赞同!
蔚蓝的天空〃没有我的翅膀
我最近在做科研项目,需要用到一些比较特定的算法。发现sklearn里面并没有,感觉有些限制。不过总体来说还是个非常不错的工具箱!
有20位网友表示赞同!
还未走i
虽然sklearn功能强大,但是个人感觉它的扩展性较弱,对于个性化需求比较困难实现。希望未来能开发出更灵活的接口,支持自定义模型和算法。
有19位网友表示赞同!
代价是折磨╳
之前用过其他的机器学习框架,觉得复杂度太高,效率不够理想。后来尝试了sklearn,发现它轻量级、易于使用,而且性能非常不错!尤其适合用于搭建原型和快速验证实验方案。
有18位网友表示赞同!
君临臣
sklLearn虽然功能比较齐全,但是我觉得它的文档阅读起来有点困难,希望能更加简洁易懂,方便新手快速入门。
有6位网友表示赞同!
不离我
机器学习框架真是太多了!sklearn确实很经典,但我还是更喜欢那些能够深入挖掘数据的模型,比如自动编码器之类的更高阶的算法。
有18位网友表示赞同!
你的眸中有星辰
我一直认为skLearn的优缺点都很明显,对于初学者来说非常有用和便捷,但是如果你想搞深度学习或一些复杂任务,我觉得需要切换到其他更强大的框架
有5位网友表示赞同!