Python?Sklearn中超实用的隐藏功能有哪些Python教程

通常,在我们的所处理的数据分布中有异常值是很常见的,并且许多算法都可以处理离群值,而ellipticalenvelope就是sklearn中直接内置的一个例子。该算法的优势在于,它在检测正态分布(高斯)特征中的异常点时表现得非常好:

我们在做数据挖掘,做特征工程时,选择对预测最有帮助的特征是防止过拟合和降低模型复杂性的必要步骤。Sklearn提供的最健壮的算法之一是递归特征消除(RFE)。它通过使用交叉验证自动找到最重要的特性,并丢弃其余的。

这个评估器的一个优点是它是一个包装器——它可以用于返回特征重要性或系数分数的任何Sklearn算法。下面是一个关于合成数据集的例子:

我们都知道,尽管随机森林非常强大,但过度拟合的风险非常高。因此,Sklearn提供了称为ExtraTrees(分类器和回归器)的RF替代方案。

"Extra"这个词并不是指更多的树,而是指更多的随机性。该算法使用了另一种类似于决策树的树。唯一的区别是,不同于在构建每棵树时计算分割阈值,这些阈值是为每个特征随机绘制的,并选择最佳阈值作为分割规则。这允许以偏差略微增加的代价来降低方差:

如果你正在寻找比SimpleImputer更健壮、更先进的imputation技术,Sklearn再次为你提供了支持。impute子包包括两个基于模型的impute算法KNNImputer和IterativeImputer。

顾名思义,KNNImputer使用k-Nearest-Neighbors算法来寻找缺失值的最佳替代:

另一个更健壮的算法是IterativeImputer。它通过将每个特征的缺失值建模为其他特征的函数来寻找缺失值。这个过程是按循序渐进的循环方式完成的。在每一步中,选择一个具有缺失值的特征作为目标(y),其余的作为特征数组(X)。然后,使用回归函数预测y中的缺失值,并对每个特征继续这个过程,直到max_iter次数(IterativeImputer的一个参数)。

因此,会为一个缺失的值生成多个预测。这种方法的好处在于将每个缺失的值视为随机变量,并将其与内在的不确定性相结合

array([[6.95847623,2.,3.],[4.,2.6000004,6.],[10.,4.99999933,9.]])

结果表明,使用IterativeImputer缺失值填补算法的BayesianRidge和ExtraTree算法性能效果变现更加优秀。

虽然正常情况下,数据分布中存在异常值是非常常见的,但异常值的存在会严重破坏任何模型的预测。许多异常值检测算法会丢弃异常值并将其标记为缺失。虽然这有助于模型的学习,但它完全消除了异常值对分布的影响。

另一种算法是HuberRegressor回归算法。它不是完全去除它们,而是在拟合数据期间给予异常值更小的权重。它有超参数epsilon来控制样本的数量,这些样本应该被归类为异常值。参数越小,对异常值的鲁棒性越强。它的API与任何其他线性回归函数相同。下面,你可以看到它与贝叶斯岭回归器在一个有大量异常值的数据集上的比较:

可以看到,设置参数epsilon为1.351.5,1.75的huberregressionor算法设法捕获不受异常值影响的最佳拟合线。

Sklearn中可以使用plot_tree函数绘制单个决策树的结构。这个特性可能对刚开始学习基于树的模型和集成模型的初学者很方便,通过该方法,对决策树的决策过程可视化,对其决策过程和原理更加一目了然。

还有其他绘制树的方法,比如Graphviz。

尽管感知机是一个奇特的名字,但它是一个简单的线性二进制分类器。算法的定义特征是适合大规模学习,默认为:

它等价于SGDClassifier,loss='perceptron',eta0=1,learning_rate="constant",penalty=None,但略快:

0.91928

Sklearn中另一个基于模型的特征选择模型是SelectFromModel。它不像RFECV那样健壮,但由于它具有较低的计算成本,可以作为大规模数据集的一个很好的选择。它也是一个包装器模型,适用于任何具有.feature_importance_或.coef_属性的模型:

(10000,8)

如结果所示,算法成功地删除了所有40个冗余特征。

总所周知,混淆矩阵是用于评估分类问题的常用方法。大多数我们通常使用的指标,如精度、召回率、F1、ROCAUC等等,都源于它。Sklearn中可以计算和绘制一个默认的混淆矩阵:

老实说,我不喜欢默认的混淆矩阵。它的格式是固定的—行是truelabels,列是predictionslabel。第一行和第一列是负类,第二行和第二列是正类。有些人可能更喜欢不同格式的矩阵,可能是转置或翻转的。

例如,我喜欢将正类作为第一行和第一列。这有助于我更好地隔离4矩阵项--TP,FP,TN,FN。幸运的是,你可以用另一个函数ConfusionMatrixDisplay绘制自定义矩阵:

在传递给ConfusionMatrixDisplay之前,可以把混淆矩阵cm放在任何格式中。

一般情况下,如果有可用于其他类型分布的替代方案,则将目标(y)转换为正态分布是没有意义的。

例如,Sklearn为目标变量提供了3种广义线性模型,分别是泊松、Tweedie或Gamma分布,而不是所期望的正态分布,poissonregressionor,TweedieRegressor和GammaRegressor可以生成具有各自分布的目标的稳健结果。

除此之外,他们的api与任何其他Sklearn模型一样。可以将它们的概率密度函数绘制在同一坐标系上,以确定目标的分布是否与这三个分布相匹配。

例如,要查看目标是否遵循泊松分布,可以使用Seaborn的kdeploy绘制它的PDF,并在相同的轴上使用np.random_poisson从Numpy中采样,绘制完美的泊松分布。

通常来说,基于树形模型和集合模型生成的结果更加稳健,同时在检测异常点方面也被证实是有效的。Sklearn中的IsolationForest使用一个极端随机树(tree.ExtraTreeRegressor)来检测异常值。每个样本被分裂到树的不同分支上,每个分支根据选定的单一特征,在该特征的最大和最小值之间随机选择一个分裂值。

这种随机分区会在每棵树的根节点和终止节点之间产生明显更短的路径。

因此,当随机树组成的森林为特定样本共同产生更短的路径长度时,它们极有可能是异常——Sklearn用户指南。

array([1,1,-1])

许多线性模型需要在数值特征上进行一些转换才能使其服从正态分布。StandardScaler和MinMaxScaler在大多数发行版中都比较适用。然而,当数据存在高偏度时,分布的核心指标,如平均值、中位数、最小值和最大值,就会受到影响。因此,简单的标准化和标准化对倾斜分布不起作用。

相反,Sklearn实现中提供了一个名为PowerTransformer的方法,它使用对数变换将任何倾斜的特征尽可能地转化为正态分布。考虑Diamonds数据集中的两个特征:

两者都严重倾斜。我们用对数变换PowerTransformer来解决这个问题:

Sklearn中的另一个数字转换器是RobustScaler,我们可以从它的名称猜出它的用途——可以以一种健壮到异常值的方式转换特性。如果一个特征中存在异常值,就很难使其服从正态分布,因为它们会严重扭曲均值和标准差。

与使用均值/标准不同,RobustScaler使用中值和IQR(四分位数范围)来衡量数据,因为这两个指标都不会因为异常值而有偏差。

在Sklearn中,有一个用make_pipeline函数创建Pipeline实例的简写。该函数不需要为Pipeline中的每一步命名,而是只接受变形器和估计器并执行它的工作,从而不需要使代码那么长:

上文中,我们使用select_dtypes函数和pandasDataFrames的columns属性来拆分数值列和分类列。虽然这当然有效,但使用Sklearn有一个更灵活、更优雅的解决方案。

make_column_selector函数创建一个可以直接传递到ColumnTransformer实例中的列选择器。它的工作原理与select_dtypes类似,甚至更好。它有dtype_include和dtype_exclude参数,可以根据数据类型选择列。如果需要自定义列筛选器,可以将正则表达式传递给pattern,同时将其他参数设置为None。下面是它的工作原理:

在我们刚学习机器学习时,常见的一个错误是使用LabelEncoder来编码有序的分类特征。注意到,LabelEncoder一次只允许转换一个列,而不是像OneHotEncoder那样同时转换。你可能会认为Sklearn犯了一个错误!

实际上,LabelEncoder应该只用于按照LabelEncoder文档中指定的方式对响应变量(y)进行编码。要编码特征数组(X),应该使用OrdinalEncoder,它将有序分类列转换为具有(0,n_categories-1)类的特性。它在一行代码中跨所有指定列执行此操作,使得在管道中包含它成为可能。

array([[0.,0.],[0.,2.],[2.,2.],[1.,1.]])

Sklearn内置了50多个指标,它们的文本名称可以在Sklearn.metrics.scores.keys中看到。在单个项目中,如果单独使用它们,则可能需要使用多个指标并导入它们。

从sklearn.metrics中导入大量指标可能会污染你的名称空间,使其变得不必要的长。一种解决方案是可以使用metrics.get_scorer函数使用其文本名称访问任何度量,而不需要导入它:

快多少呢?在我做过的实验中,HalvingGridSearch比普通GridSearch快11倍,HalvingRandomSearch甚至比HalvingGridSearch快10倍。

Sklearn在sklearn.utils中有一整套实用程序和辅助功能。Sklearn本身使用这个模块中的函数来构建我们使用的所有变形器transformers和估计器transformers。

这里有许多有用的方法,如class_weight.compute_class_weight、estimator_html_repr、shuffle、check_X_y等。你可以在自己的工作流程中使用它们,使你的代码更像Sklearn,或者在创建适合SklearnAPI的自定义转换器和评估器时,它们可能会派上用场。

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

THE END
1.数据挖掘的主要功能是什么帆软数字化转型知识库数据挖掘的主要功能包括模式识别、预测分析、分类和聚类、关联规则挖掘、异常检测、回归分析、时间序列分析。其中,模式识别是数据挖掘的重要功能之一。模式识别可以通过分析大量数据来发现隐藏的模式和关系,从而帮助企业和组织做出更明智的决策。例如,零售业可以通过模式识别分析客户的购买行为,进而调整库存和促销策略,提高销售https://www.fanruan.com/blog/article/592659/
2.数据挖掘有哪些功能导读随着大数据发展越来越好,数据挖掘成为了未来发展的一大趋势,数据挖掘和分析技术在各行业发挥着重要作用,小编为大家整理了数据挖掘的具体功能介绍,一起来看看吧。 数据挖掘有哪些功能: 数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下五https://www.baijiao.org/school/zhengzhouxinyingdajiaoyu/news/14499.html
3.什么是数据挖掘?数据挖掘具有哪些功能?数据挖掘是指从大量数据中提取隐含的、未知的、潜在的有用的信息,使其表现为概念、规则、规律、模式等形式。数据挖掘实质上是一个深层次的数据分析过程,即从大量的数据中,抽取出潜在的、有价值的知识、模型或规则的过程。 ( 1 )趋势和行为分析;( 2 )关联分析;( 3 )聚类分析;( 4 )概念描述;( 5 )偏差检测https://www.shuashuati.com/ti/b42dc41b1dec47e08e65ba734ea56cff.html
4.何谓数据挖掘?它有哪些方面的功能?何谓数据挖掘?它有哪些方面的功能?点击查看答案 你可能感兴趣的试题 第1题:最佳的公共关系状态是()A.高知名度、高美誉度B.高美誉度、低知名度C.低知名度、低美誉度D.低美誉度最佳的公共关系状态是()A.高知名度、高美誉度B.高美誉度、低知名度C.低知名度、低美誉度D.低美誉度、高知名度 答案解析与讨论https://www.netkao.com/shiti/825383/2520537goih8tt93u.html
5.数据挖掘主要包含哪些功能,带来了什么影响?51CTO博客数据挖掘主要包含哪些功能,带来了什么影响? 当今信息科技异常发达,因此,有许多的事务数据大量地被收集到数据库中,但这些数据如果不使用的话,那搜集这些数据又显得相当没有意义。就目前而言,数据的搜集方法已经相当成熟,而数据挖掘的技术正可以帮助分析这些数据。https://blog.51cto.com/u_13973070/6205705
6.数据可视化有哪些功能10.可视化数据挖掘; 11.用户定制化; 12.多平台支持。数据可视化具有丰富的功能和优势,可以帮助人们更好地理解和分析数据,从而进行更准确和有效的决策和规划。 1.揭示数据关系 通过数据可视化,可以直观地展示数据之间的关系,例如相关性、趋势、分布等。这对于发现数据中的潜在关联和规律非常重要,有助于深入分析数据,并https://www.linkflowtech.com/news/3070
7.wps可以实现哪些数据分析功能,可以实现一些数据挖掘功能吗wps可以实现哪些数据分析功能,可以实现一些数据挖掘功能吗 您好,WPS表格只支持单变量求解和规划求解功能,点击“数据--模拟分析”进入,楼主是需要数据分析的什么功能呢?https://www.wps.cn/learning/room/d/235592
8.急诊业务系统有哪些功能急诊科需要对患者的病情、治疗效果以及医疗资源的利用情况进行统计分析,以便及时发现并解决存在的问题。系统可以提供常规的统计分析功能,包括患者的年龄段、病种分布、病床使用率等等。 小标题二:数据挖掘分析 通过对急诊科的大量数据进行挖掘和分析,可以发现一些隐藏的规律和特征,为急救工作提供更加精准的指导和支持。系统https://h.chanjet.com/ask/c56fea98ed6b6.html
9.易撰有哪些功能免费吗?怎么使用方法详细教程指南易撰是一个专注于新媒体数据挖掘和分析服务的平台,它为新媒体内容创作者提供数据定制服务,帮助政企单位、媒体、MCN机构和开发者解决数据获取难题。易撰提供日均更新数据量达 1000 的海量历史数据,并支持分钟级账号/内容监测。 易撰 有哪些功能? 账号查找:根据需求寻找新媒体平台账号和发布内容 https://www.chinaz.com/2024/0528/1619670.shtml
10.Python数据挖掘有啥功能问答Python数据挖掘的功能主要包括以下几个方面: 数据清洗和预处理:Python提供了许多库(如pandas、numpy等)用于数据清洗和预处理,包括去除重复值、填充缺失值、数据转换等操作。这些库使得数据预处理变得简单高效。 数据可视化:Python有强大的数据可视化库(如matplotlib、seaborn、plotly等),可以进行各种复杂的图表绘制,帮助用户https://m.yisu.com/ask/10395392.html
11.数据挖掘常用功能离散序列挖掘是一种数据挖掘技术,它可以从离散序列中发现有意义的模式,以便更好地理解数据。时间序列挖掘是一种数据挖掘技术,它可以从时间序列中发现有意义的模式,以便更好地理解数据。 总的来说,数据挖掘常用功能包括数据集构建、数据预处理、模式发现、关联规则挖掘、聚类分析、分类分析、离散序列挖掘和时间序列挖掘https://wenku.baidu.com/view/346d7f07f31dc281e53a580216fc700aba68525b.html
12.数据仓库和数据挖掘12篇(全文)(一) 数据挖掘的功能特征 (1) 自动预测趋势和行为:数据挖掘摒弃了以往的采用大量手工方式分析问题的路线, 能够自动的从大型的数据库中找到预测性信息。迅速而直接的根据数据本身, 得出结论。 (2) 关联分析:数据关联是数据库中一类存在的可被发现的重要知识。假若两个或多个变量的取值之间存在某种规律性, 就可以称https://www.99xueshu.com/w/ikeyy9nb2adc.html
13.数据挖掘)(功能选择MicrosoftLearn数据挖掘在 SQL Server 2017 Analysis Services 中已弃用,现在在 SQL Server 2022 Analysis Services 中已停止使用。 对于已弃用和停止使用的功能,文档不会更新。 若要了解详细信息,请参阅 Analysis Services 后向兼容性。功能选择 是机器学习的重要组成部分。 功能选择是指减少要处理和分析的输入或查找最有意义的输https://msdn.microsoft.com/zh-cn/library/ms175382.aspx
14.单细胞分析的相关数据库教程其中scRNASeqDB主要收录的是来自GEO的生物医学单细胞测序数据。 CellMarker:CellMarkers可以查看不同细胞群体的marker基因,或者输入一个基因,数据库就可以告诉我们该基因属于哪种组织、哪种细胞。 ArrayExpress:这个数据库的优势在于能够做简单数据挖掘,有专门的单细胞测序板块、方便用户使用有整理好的数据供下载分析挖掘,http://m.yunbios.net/Database-on-single-cell-analysis.html
15.任正非metaerp任正非metaerp任正非metaerp是什么零代码企业该系统的核心理念是通过数据的集中管理和智能分析,帮助企业实现实时监控、预测分析和精细化管理,从而提升企业的竞争力。任正非Meta ERP的优势在于其灵活性和可扩展性,能够根据不同企业的规模和行业特点进行定制,满足多样化的业务需求。 任正非Meta ERP的主要功能有哪些? https://www.jiandaoyun.com/blog/article/1837365/
16.今日头条有哪些功能与作用今日头条有哪些功能与作用查看全部5条评论回答 写回答 zsw125 今日头条的功能为:今日头条是一款基于数据挖掘的引擎产品,其为用户推荐有价值的以及个性化的信息,提供连接人与信息的新型服务,该软件是国内移动互联网领域成长最快的产品软件之一。今日头条的作用有二,分别为:1、今日头条可为用户提供便捷的以及广泛的https://wap.zol.com.cn/ask/details_16273042_1491683_3.html
17.抖音企业蓝V号有哪些功能和特点短视频代运营7. 多账号管理:支持多账号管理功能,方便企业在不同平台或地区开设多个账号进行品牌推广和营销。同时还可以实现不同账号之间的协同管理和信息共享。 8. 数据监控与优化:可以通过数据监控和分析工具对推广效果进行实时监控和分析评估从而及时调整策略提高效果并降低成本,还可以通过数据挖掘和分析工具对用户行为和需求进行分析https://www.dourancm.com/a/zhishi/640.html
18.电力监控系统是什么,有哪些功能?二、电力监控系统有什么功能 1. 数据采集与处理 电力监控系统能够实时采集电力系统中的各种关键参数,包括但不限于电压、电流、功率因数、有功功率、无功功率、频率、电能、温度以及设备运行状态等。这些数据的采集依赖于遍布电力系统的传感器和智能设备,确保数据的准确性和时效性。采集到的数据随后经过系统的处理与分析,http://www.c-safe.cn/a/news/hyzx/122.html