当前位置: 首页 > 科技观察

你熟悉Scikit-learn吗?这些功能你都知道吗?

时间:2023-03-17 16:29:52 科技观察

大数据文摘编译:王晓琪、大洁琼、Aileen分享了Scikit-learn包中一些鲜为人知的遗留功能。Scikit-learn是所有Python机器学习包中你必须掌握的最重要的一个包。它包含各种分类算法、回归算法和聚类算法,包括支持向量机、随机森林、梯度提升、k均值和基于密度的聚类算法(DBSCAN),旨在与Python数值库NumPy和科学库SciPy互操作。它通过一个接口提供了一系列有监督和无监督的算法。这个库希望在生产中使用时是健壮的和支持性的,因此它关注易用性、代码质量、协作、文档生成和性能等问题。Scikit-learn库是机器学习初学者和经验丰富的专业人士都应该掌握的优秀软件包。然而,即使是经验丰富的机器学习从业者也可能不知道这个包中隐藏的一些可以轻松帮助他们完成任务的功能。接下来,本文将列举scikit-learn库中几个鲜为人知的方法或接口。管道这可用于将多个估算器链接成一个。因为在处理数据的时候,通常会有一系列固定的步骤,比如特征选择、归一化和分类,这时这种方法就会非常有用。更多信息:http://scikit-learn.org/stable/modules/pipeline.html网格搜索(Grid-search)超参数在参数估计中不是直接学习的。在scikit-learn库中,超参数作为参数传递给Estimator类的构造函数,然后在超参数空间中搜索最佳交叉验证分数。构建参数估计器时提供的任何参数都可以通过这种方式进行优化。更多信息:http://scikit-learn.org/stable/modules/grid_search.html#grid-search验证曲线(Validationcurves)每种估计方法都有自己的优缺点,其泛化误差可以通过bias来计算,要分解的方差和噪声。估计器的偏差是不同训练集的平均误差;估计器的方差是对不同训练集的敏感度;噪音是数据本身的一个属性。绘制单个超参数对训练和验证分数的影响非常有用,因为从图中可以看出估计器对于某些超参数值是过拟合还是欠拟合。在Scikit-learn库中,有一个内置的方法可以实现上述过程。更多信息:http://scikit-learn.org/stable/modules/learning_curve.htmlOne-hotencodingofcategoricaldata这是一个很常见的数据预处理步骤,在分类或者预测任务中(比如混合定量的逻辑回归和文本特征),它通常用于多分类变量的二进制编码。Scikit-learn库提供了高效且简单的方法来执行此操作。它可以直接对Pandas数据框或Numpy数组进行操作,因此用户可以为这些数据转换编写一些特殊的映射函数或应用函数。关于Scikit-learn库的更多信息:http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features多项式特征生成(Polynomialfeaturegeneration)对于无数的回归建模任务,一个常见的和增加模型复杂度的有效方法是增加解释变量的非线性特性。一种简单常用的方法是多项式特征,因为它可以得到特征的高阶项和交项。虽然Scikit-learn库中有现成的函数,但它可以根据给定的特征集和用户选择的最高多项式生成高阶交集项。更多信息:http://scikit-learn.org/stable/modules/preprocessing.html#generating-polynomial-features数据集生成器(Datasetgenerators)Scikit-learn库包含多种随机样本生成器,可以基于不同的构建任何规模和复杂性的人工数据集,具有分类、聚类、回归、矩阵分解和流形测试的能力。更多信息:http://scikit-learn.org/stable/datasets/index.html#sample-generators相关报道:https://heartbeat.fritz.ai/some-essential-hacks-and-tricks-for-machine-learning-with-python-5478bc6593f2【本文为专栏组织大数据文摘原创翻译,微信公众号“大数据文摘(id:BigDataDigest)”】点此查看作者更多好文