![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
scikit-learn
文章平均质量分 95
scikit-learn
数智笔记
目前从事数据挖掘工作,期望在自己学习总结的同时,也能分享有益的东西给别人,希望有志者能在数据挖掘领域共同进步
展开
-
Scikit-Learn案例学习 新奇性检测和异常值检测 Novelty and Outlier Detection
scikit-learn 中异常值检测算法的比较。Local Outlier Factor (LOF) 由于没有预测方法可用于异常值检测,因此没有显示黑色的决策边界。和在考虑的数据集上表现得相当好。对异常值敏感,因此在异常值检测方面表现不佳。尽管如此,在高维度或没有对内部数据分布做任何假设的情况下进行异常值检测非常具有挑战性。仍然可以用于异常值检测,但需要对其超参数 nu 进行精细调整,以处理异常值并防止过拟合。提供了一个线性 One-Class SVM 的实现,其样本数量的复杂度为线性。原创 2024-02-21 14:09:44 · 1011 阅读 · 0 评论 -
Scikit-Learn 1.4实战案例:分类模型
首先需要注意的是,对于第一个和第二个数据集,LDA和QDA是等价的。由于在这些情况下数据生成过程对两个类别使用了相同的协方差矩阵,QDA估计了两个(几乎)相等的协方差矩阵,因此等价于LDA估计的协方差矩阵。QDA拟合了两个协方差矩阵,并提供了一个非线性的判别边界,而LDA则欠拟合,因为它假设两个类别共享一个单一的协方差矩阵。在第一个数据集中,用于生成数据集的协方差矩阵是球形的,这导致判别边界与两个均值的垂直平分线对齐。使用LDA时,所有类别的标准差相同,而使用QDA时,每个类别都有自己的标准差。原创 2024-02-13 22:28:37 · 746 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数组 API 支持(实验性)Array API support (experimental)
然而,目前编写本文时,PyTorch 对 MPS 设备的支持不完整。一些主要依赖于 NumPy(而不是使用 Cython)来实现其拟合、预测或转换方法的 scikit-learn 估计器可以配置为接受任何与数组 API 兼容的输入数据结构,并自动将操作分派到底层命名空间,而不是依赖于 NumPy。模型训练后,数组类型的拟合属性也将与训练数据相同,属于相同的数组 API 命名空间。这将启用专用检查作为常规测试的一部分,以验证在使用原始 NumPy 和数组 API 输入时估计器的结果是否相同。原创 2024-02-08 16:20:47 · 853 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:常见陷阱和推荐实践 Common pitfalls and recommended practice
例如,如果有一个归一化步骤,其中除以平均值,那么平均值应该是训练子集的平均值,而不是所有数据的平均值。当我们传递一个整数时,估计器将在每个折叠上使用相同的RNG:如果估计器在CV评估中表现良好(或不好),可能只是因为我们在特定的种子上运气好(或不好)。的随机权重初始化在所有折叠中都是一致好的:否则,当我们在新数据上训练该估计器时,我们可能会运气不好,随机初始化可能导致性能不佳。如果在训练模型时使用了这些数据转换,那么在后续的数据集上,无论是测试数据还是生产系统中的数据,都必须使用相同的转换。原创 2024-02-08 16:19:59 · 1010 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型持久化
除了一些例外情况外,pickle 的模型在相同版本的依赖项和 Python 使用的情况下应该可以在不同架构之间移植。在训练完一个 scikit-learn 模型后,希望有一种方法可以将模型保存下来以备将来使用,而不必重新训练。当使用与保存模型的 scikit-learn 版本不一致的 scikit-learn 版本来反序列化估计器时,会引发 InconsistentVersionWarning。但是,您需要指定您信任的类型。为了满足可重现性和质量控制的需求,当考虑到不同的架构和环境时,将模型导出为。原创 2024-02-08 16:02:01 · 1028 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:通过scikit-learn计算 并行性、资源管理和配置 Parallelism, resource management, and configuratio
同样,不应在拉取请求的CI配置中设置此变量,以确保我们友好的贡献者不是第一个遇到与其自己PR的更改无关的种子敏感性回归测试的人。(在CI的夜间构建中应该是这样),夹具将在上述范围内选择一个任意的种子(基于BUILD_NUMBER或当前日期),并且所有夹具化的测试将使用该特定种子运行。目标是确保随着时间的推移,我们的CI将使用不同的种子运行所有测试,同时保持完整测试套件的单次运行时间有限。希望获得最佳性能的用户可能希望使用2的幂来调整此变量,以获得与其硬件的并行行为最佳匹配,特别是与其缓存大小相关的行为。原创 2024-02-08 16:01:00 · 1220 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:通过scikit-learn计算 计算性能 Computational Performance
例如,在 Reuters 文本分类任务中,整个准备过程(读取和解析 SGML 文件,对文本进行标记化并将其哈希化为一个共同的向量空间)所花费的时间比实际预测代码多 100 到 500 倍,具体取决于所选择的模型。因此,为了使稀疏输入表示在具有多个 CPU 和优化的 BLAS 实现的计算机上比密集输入表示更快,稀疏度通常应该相当高(最多 10% 的非零值,具体取决于硬件)。事实上,简单的模型(例如线性模型而不是非线性模型,或者参数更少的模型)通常运行更快,但并不总能考虑到与更复杂模型相同的数据属性。原创 2024-02-08 15:59:52 · 564 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:通过scikit-learn计算 扩展计算能力的策略 Strategies to scale computationally/ bigger data.
实际上,从小批量实例中增量学习(有时称为“在线学习”)的能力对于外存学习至关重要,因为它保证在任何给定时间内,主存中只有少量实例。对于分类任务,需要注意的一个相当重要的事情是,尽管无状态的特征提取程序可能能够处理新/未见过的属性,但增量学习器本身可能无法处理新/未见过的目标类。相反,后者在流中的后期出现的明显不同但正确标记的示例的重要性也较低,因为它们的学习速率随时间的推移而降低。在选择适当的算法时,还要考虑一个方面,即它们并不都对每个示例的重要性给予相同的重视。对错误标记的示例仍然敏感,而。原创 2024-02-08 15:58:12 · 855 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 转换预测目标 (`y`) Transforming the prediction target (y
学习中,使用一个标签二进制指示数组来表示二进制分类任务的联合集:每个样本是一个形状为 (n_samples, n_classes) 的二维数组的一行,其中二进制值的非零元素对应于该样本的标签子集。是一个实用类,用于将标签规范化为只包含 0 到 n_classes-1 之间的值。表示第一个样本中的标签 0,第二个样本中的标签 1 和 2,以及第三个样本中没有标签。使用这种格式可以在支持标签指示矩阵格式的估计器中进行多类别分类。将多标签数据表示为一组标签集合的列表可能更直观。有关多标签分类的更多信息,请参考。原创 2024-02-08 15:55:27 · 200 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 两两度量、亲和力和核函数(Pairwise metrics, Affinities and Kernels)
从概念上讲,多项式核函数不仅考虑了相同维度下的向量相似度,还考虑了跨维度的向量相似度。Sigmoid 核函数也称为双曲正切函数,或多层感知机(因为在神经网络领域中,它经常用作神经元的激活函数)。这种归一化是通过与卡方距离的关联来合理化的,卡方距离是离散概率分布之间的距离。这被称为余弦相似度,因为欧几里得(L2)归一化将向量投影到单位球上,它们的点积就是向量所表示的点之间的夹角的余弦。该核函数是计算以 tf-idf 向量表示的文档的相似度的常用选择。计算两个向量之间的径向基函数(RBF)核函数。原创 2024-02-08 15:53:39 · 692 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 核近似 Kernel Approximation
的概念的,Count sketch 是一种类似于特征哈希的降维技术,但它使用了多个独立的哈希函数。具体而言,TensorSketch 不是显式计算外积,而是计算向量的 Count Sketch,然后通过快速傅里叶变换进行多项式乘法,计算它们的外积的 Count Sketch。直观地说,次数为 d 的多项式核函数的特征空间包含了输入特征之间所有可能的 d 次乘积,这使得使用该核函数的学习算法能够考虑特征之间的相互作用。将得到对核的更好近似,并产生与核 SVM 产生的结果更相似的结果。有关详细信息,请参见。原创 2024-02-08 15:51:43 · 962 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 无监督降维(Unsupervised dimensionality reduction)、随机投影(Random Projection)
在数学中,Johnson-Lindenstrauss 引理是关于将高维空间中的点低畸变地嵌入到低维欧几里得空间中的结果。该引理表明,高维空间中的一小组点可以以保持点之间距离几乎不变的方式嵌入到一个低维空间中。模块实现了一种简单且计算效率高的方法,通过在处理时间和模型大小上进行权衡,以控制的精度损失(作为额外的方差)来降低数据的维度。因此,随机投影是一种适用于基于距离的方法的逼近技术。稀疏随机矩阵是稠密高斯随机投影矩阵的替代品,它保证了类似的嵌入质量,同时更加节省内存,并允许更快地计算投影后的数据。原创 2024-02-08 15:50:44 · 856 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 缺失值的填充 Imputation of missing values
虽然这个特征在预测设置中没有帮助,但删除列会改变 X 的形状,这在使用填充器进行更复杂的机器学习流程时可能会有问题。类提供了基本的策略来填充缺失值。可以使用提供的常数值来填充缺失值,也可以使用包含缺失值所在列的统计值(均值、中位数或最常见值)来填充。类,它将具有缺失值的每个特征建模为其他特征的函数,并将该估计用于填充。默认情况下,scikit-learn 的填充器会删除完全为空的特征,即只包含缺失值的列。一种填充算法是单变量填充,它仅使用该特征维度中的非缺失值来填充第i个特征维度的值(例如。原创 2024-02-08 15:47:09 · 1070 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 数据预处理 Preprocessing data
通常,您希望将现有的 Python 函数转换为转换器,以帮助进行数据清洗或处理。您可以使用从任意函数实现一个转换器。>>> # 由于 FunctionTransformer 在拟合过程中不起作用,我们可以直接调用 transform您可以通过设置并在transform之前调用fit来确保func和互为反函数。请注意,会引发警告,可以通过有一个完整的代码示例,演示了如何使用从文本数据中提取特征,请参见和。原创 2024-02-08 15:45:17 · 968 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 特征提取 Feature Extraction
..") == ('])True:一个可调用对象,将整个文档作为输入(作为一个字符串),并返回可能经过转换的文档的版本,仍然作为一个字符串。这可以用于删除 HTML 标签、将整个文档转换为小写等。tokenizer:一个可调用对象,将预处理器的输出拆分为标记,然后返回这些标记的列表。analyzer:一个可调用对象,替换预处理器和标记器。默认的分析器都调用预处理器和标记器,但自定义的分析器将跳过这些步骤。N-gram 提取和停用词过滤发生在分析器级别,因此自定义分析器可能需要重现这些步骤。原创 2024-02-08 15:41:24 · 722 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:数据转换 流水线和组合估计器
为了构建一个组合估计器,通常会将转换器与其他转换器或`预测器`(如分类器或回归器)结合在一起。用于组合估计器的最常用工具是`Pipeline(流水线)`。流水线要求除最后一步外的所有步骤都是转换器。原创 2024-02-07 14:58:41 · 931 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型可视化
Scikit-learn为机器学习定义了一个简单的API,用于创建可视化图表。该API的关键特点是允许快速绘图和可视化调整而无需重新计算。对象允许我们在将来的图表中继续使用已计算的SVC的ROC曲线。请注意,我们可以从支持向量机获取预测结果,然后使用。有时,我们只想计算一次预测,这时应该使用。接下来,我们训练一个随机森林分类器,并使用。是一个RocCurveDisplay。传递给绘图函数,以调整曲线的透明度。方法将使用拟合的估计器和一些数据(方法再次绘制先前计算的ROC曲线。,它将计算的值存储为名为。原创 2024-02-07 12:17:54 · 473 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型选择和评估 排序特征重要性
输入:已拟合的预测模型mmm,表格数据集(训练或验证)DDD。计算模型mmm在数据DDD上的参考得分sss(例如分类器的准确性或回归器的R2R^2R2对于每个特征jjjDDD的列):对于重复次数kkk在1K1...K随机打乱数据集DDD的列jjj,生成一个名为DkjDkj的损坏数据的版本。计算模型mmm在损坏数据DkjDkj上的得分skjs_{k,j}skj。计算特征fjf_jfj。原创 2024-02-07 12:16:32 · 1233 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:检查 排列特征重要性
输入:已拟合的预测模型mmm,表格数据集(训练或验证)DDD。计算模型mmm在数据DDD上的参考得分sss(例如分类器的准确性或回归器的R2R^2R2对于每个特征jjjDDD的列):对于重复次数kkk在1K1...K随机打乱数据集DDD的列jjj,生成一个名为DkjDkj的损坏数据的版本。计算模型mmm在损坏数据DkjDkj上的得分skjs_{k,j}skj。计算特征fjf_jfj。原创 2024-02-07 12:15:02 · 729 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:检查 偏依赖图和个体条件期望图
例如,我们可以看到温度特征的 ICE 图提供了一些额外的信息:一些 ICE 线是平坦的,而另一些 ICE 线显示了温度超过摄氏35度时依赖性的下降。然而,与 PDP 不同的是,PDP 显示了输入特征的平均效果,而 ICE 图用每个样本的一条线分别可视化了预测对特征的依赖关系。例如,上图中的双变量 PDP 显示了自行车租赁数量与温度和湿度的联合值之间的依赖关系。由于人类感知的限制,感兴趣的输入特征的集合的大小必须很小(通常为一个或两个),因此通常从最重要的特征中选择感兴趣的输入特征。指定哪些特征是分类特征。原创 2024-02-07 12:14:16 · 1320 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型选择和评估 验证曲线:绘制评估模型的分数
我们可以看到第一个估计器最多只能提供对样本和真实函数的较差拟合,因为它太简单(高偏差),第二个估计器几乎完美地逼近了它,最后一个估计器完美地逼近了训练数据,但对真实函数的拟合效果不好,即它对不同的训练数据非常敏感(高方差)。请注意,如果我们基于验证分数优化超参数,则验证分数会产生偏差,并且不再是对泛化的良好估计。对于朴素贝叶斯,随着训练集大小的增加,验证分数和训练分数都收敛到一个相当低的值。然而,有时候绘制单个超参数对训练分数和验证分数的影响是有帮助的,以找出估计器在某些超参数值下是过拟合还是欠拟合。原创 2024-02-06 19:06:07 · 762 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型选择和评估 评估预测质量的度量和评分
最后, 对于随机预测可以提供基准值。对于“成对”度量,是针对样本而不是估计器或预测的,详见部分。使用诸如 和 等工具进行模型选择和评估时,可以使用 参数来控制评估的估计器应用的度量标准。对于最常见的用例,可以使用 参数指定一个评分器对象;下表显示了所有可能的值。所有评分器对象都遵循一个约定,即较高的返回值优于较低的返回值。因此,度量模型与数据之间的距离的度量,如 ,可以作为 使用,它返回度量的负值。使用示例:sklearn.metrics 模块还提供了一组简单的函数,用于根据真实值和预测值测量原创 2024-02-06 19:02:59 · 1580 阅读 · 1 评论 -
Scikit-Learn 1.4使用指南:模型选择和评估 调整估计器的超参数
例如,如果我们从5个候选人开始,我们只需要2次迭代:第一次迭代有5个候选人,然后第二次迭代有5 // 2 = 2个候选人,之后我们就知道哪个候选人表现最好了(所以我们不需要第三个候选人)。候选人开始,我们可能最终会有很多候选人在最后一次迭代中,这可能并不总是理想的:这意味着许多候选人将使用全部资源运行,基本上将该过程简化为标准搜索。这个估计是“免费”的,因为不需要额外的数据,并且可以用于模型选择。请注意,在上面的示例中,最后一次迭代没有使用最大数量的可用资源:有1000个样本可用,但最多只使用了640个。原创 2024-02-06 19:00:49 · 762 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:模型选择和评估 交叉验证:评估估计器性能
对于某些数据集,已经存在将数据拆分为训练和验证折叠或多个交叉验证折叠的预定义拆分。使用可以在搜索超参数时使用这些折叠。例如,当使用验证集时,将test_fold设置为所有属于验证集的样本的值为 0,其他样本的值为 -1。原创 2024-02-06 18:53:36 · 794 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 神经网络模型(无监督)Neural network models (unsupervised)
它的目标是降低模型偏好的联合状态的能量,从而使其保持与数据一致。这意味着输入数据应该是二进制的,或者是介于0和1之间的实值,表示可见单元打开或关闭的概率。这是字符识别的好模型,因为它关注的是哪些像素是活跃的,哪些是非活跃的。因此,该模型的参数由连接的权重以及每个可见单元和隐藏单元的一个截距(偏置)项参数化,为了简化起见,该图像中省略了这些参数。一词指的是模型的二分结构,禁止隐藏单元之间或可见单元之间的直接相互作用。,它假设输入要么是二进制值,要么是介于0和1之间的值,每个值编码了特定特征打开的概率。原创 2024-02-06 08:38:17 · 702 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 密度估计 Density Estimation.
scikit-learn 中异常值检测算法的比较。Local Outlier Factor (LOF) 由于没有预测方法可用于异常值检测,因此没有显示黑色的决策边界。和在考虑的数据集上表现得相当好。对异常值敏感,因此在异常值检测方面表现不佳。尽管如此,在高维度或没有对内部数据分布做任何假设的情况下进行异常值检测非常具有挑战性。仍然可以用于异常值检测,但需要对其超参数 nu 进行精细调整,以处理异常值并防止过拟合。提供了一个线性 One-Class SVM 的实现,其样本数量的复杂度为线性。原创 2024-02-06 08:37:25 · 808 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 新奇性检测和异常值检测 Novelty and Outlier Detection
scikit-learn 中异常值检测算法的比较。Local Outlier Factor (LOF) 由于没有预测方法可用于异常值检测,因此没有显示黑色的决策边界。和在考虑的数据集上表现得相当好。对异常值敏感,因此在异常值检测方面表现不佳。尽管如此,在高维度或没有对内部数据分布做任何假设的情况下进行异常值检测非常具有挑战性。仍然可以用于异常值检测,但需要对其超参数 nu 进行精细调整,以处理异常值并防止过拟合。提供了一个线性 One-Class SVM 的实现,其样本数量的复杂度为线性。原创 2024-02-06 08:36:07 · 1058 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 协方差估计 Covariance estimation
计算了最小协方差行列式估计器后,可以根据它们的马氏距离给观测值赋予权重,从而得到数据集的协方差矩阵的重新加权估计(“重新加权步骤”)。它给出了偏独立关系。尽管最大似然估计是协方差矩阵的渐近无偏估计,但它不是协方差矩阵的特征值的良好估计,因此从其逆矩阵中获得的精度矩阵不准确。在假设数据服从高斯分布的情况下,Chen 等人推导出了一个公式,旨在选择一个收缩系数,使得均方误差比 Ledoit 和 Wolf 的公式给出的均方误差更小。在非常小的样本设置中,最大似然估计、收缩估计和稀疏估计的协方差和精度矩阵的比较。原创 2024-02-06 08:35:15 · 846 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 信号分解成分 (矩阵分解问题) Decomposing signals in components
NNDSVD基于两个SVD过程,一个近似数据矩阵,另一个近似结果的部分SVD因子的正部分,利用了单位秩矩阵的代数性质。例如,Varimax旋转最大化了平方载荷的方差之和,即它倾向于产生更稀疏的因子,每个因子仅受到少数特征的影响(“简单结构”)。当字典学习用于提取用于监督学习的特征时,这是很有用的,因为它允许学习算法对特定原子的负载的负权重和相应的正负载之间进行不同的赋值。如果下游模型对信号的各向同性有强烈的假设,这通常是很有用的:例如,对于使用 RBF 核的支持向量机和 K-Means 聚类算法。原创 2024-02-06 08:34:29 · 902 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 双聚类 Biclustering
在处理真实数据时,真实解通常是未知的,但对人工数据进行双聚类可能有助于准确评估算法,因为真实解是已知的。具有此结构的矩阵的行和列可以被分区,以使得行聚类和列聚类的笛卡尔积中的任何双聚类的条目近似恒定。要将一组找到的双聚类与真实双聚类进行比较,需要两个相似度度量:用于单个双聚类的相似度度量,以及将这些单个相似度组合成一个总体分数的方法。该算法将矩阵的行和列分区,以便相应的分块常数棋盘格矩阵提供对原始矩阵的良好近似。为了可视化,给定一个双聚类,可以重新排列数据矩阵的行和列,使得双聚类连续。原创 2024-02-06 08:33:17 · 982 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 流形学习 Manifold learning
一个关键参数是学习率。基于图的代价函数的最小化确保了在低维空间中,接近的点在局部距离上也是接近的,从而保持了局部距离。虽然 Isomap、LLE 和其变体最适合展开单个连续的低维流形,但 t-SNE 将专注于数据的局部结构,并倾向于提取聚类的局部样本组,如 S 曲线示例所示。精确的 t-SNE 方法对于检查嵌入的理论属性可能是有用的,尤其是在更高维空间中,但由于计算限制,仅限于小型数据集。虽然存在有监督的变体,但典型的流形学习问题是无监督的:它从数据本身中学习数据的高维结构,而不使用预先确定的分类。原创 2024-02-06 08:32:22 · 1101 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 高斯混合模型 Gaussian mixture models
每次,我们将棍子的长度与落入混合组中的点的比例相关联。高斯混合模型是一种概率模型,假设所有的数据点都是由一个有限数量的高斯分布混合生成的,而且这些高斯分布的参数是未知的。狄利克雷过程的变分推断技术仍然使用有限近似来处理这个无限混合模型,但是与必须事先指定要使用的成分数量不同,只需指定浓度参数和混合成分数量的上界(假设它比"真实"成分数量更高,只影响算法复杂度,而不是实际使用的成分数量)。需要注意的是,对于观测数据很少的情况,具有狄利克雷过程先验的变分高斯混合模型可能会采取保守的立场,只拟合一个成分。原创 2024-02-06 08:30:40 · 1138 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:无监督学习 聚类 Clustering
scikit-learn中聚类算法的比较方法名称参数可扩展性用例几何形状(使用的度量)聚类数非常大的n_samples,中等的n_clusters与一起使用通用,即使聚类大小,平坦几何,不太多的聚类,归纳点之间的距离阻尼,样本偏好随着n_samples的增加,不可扩展许多聚类,不均匀的聚类大小,非平坦几何,归纳图距离(例如最近邻图)带宽随着n_samples的增加,不可扩展许多聚类,不均匀的聚类大小,非平坦几何,归纳点之间的距离聚类数中等的n_samples,小的。原创 2024-02-06 08:29:21 · 1008 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:有监督学习 神经网络模型 Neura Network
例如,将输入向量 X 中的每个属性缩放到 [0, 1] 或 [-1, +1],或者将其标准化为均值为0,方差为1。实现了一个多层感知机(MLP),在输出层中没有激活函数(也可以看作是使用恒等函数作为激活函数)的反向传播训练算法。计算损失后,反向传播将其从输出层传播到前面的层,为每个权重参数提供一个更新值,以减小损失。更具体地说,它使用某种形式的梯度下降进行训练,梯度是使用反向传播计算的。Adam 类似于 SGD,它是一种随机优化器,但它可以根据低阶矩的自适应估计自动调整参数更新的量。原创 2024-02-05 08:46:32 · 402 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南: 有监督学习 概率校准 Probability Calibration
Niculescu-Mizil和Caruana给出了一个解释:“诸如bagging和随机森林之类的方法,这些方法从一组基本模型的预测中平均预测,可能在接近0和1的预测上出现困难,因为基本模型的方差会使应该接近零或一的预测偏离这些值。”因此,校准曲线显示了一个特征的S形状,表明分类器可以更加相信自己的“直觉”,通常返回更接近0或1的概率。较低的Brier损失并不一定意味着更好的校准模型,它也可能意味着校准更差的模型,但具有更强的区分能力,例如使用更多的特征。在预测概率时,会分别预测每个类别的校准概率。原创 2024-02-05 08:45:34 · 970 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:半监督学习 SemiSupervised 、保序回归 Isotonic Regression
这个矩阵可能非常大,并且与每次迭代算法执行的完整矩阵乘法计算的成本相结合,可能导致运行时间过长。在每次迭代中,base_classifier对未标记样本进行预测,并将其中的一部分标签添加到标记的数据集中。中的半监督估计器能够利用这些额外的未标记数据更好地捕捉底层数据分布的形状,并对新样本进行更好的泛化。使用这个算法,给定的有监督分类器可以作为半监督分类器,从未标记的数据中学习。选择标签的子集是由选择准则确定的。,这意味着我们将始终保留80%的原始标签分布,但算法可以在20%的范围内改变其分布的置信度。原创 2024-02-05 08:43:13 · 544 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南: 有监督学习 特征选择 feature Selection
此外,根据所需的所选特征数量,其中一个可能比另一个快得多:如果我们有 10 个特征并要求选择 7 个特征,前向选择需要执行 7 次迭代,而后向选择只需要执行 3 次。另一方面,互信息方法可以捕捉任何类型的统计依赖关系,但由于是非参数的,它们需要更多的样本才能进行准确估计。例如,假设我们有一个具有布尔特征的数据集,并且我们想要删除在超过80%的样本中为1或0(开或关)的所有特征。最后,得分在交叉验证折叠中平均,并将选择的特征数设置为最大化交叉验证得分的特征数。然后,将最不重要的特征从当前特征集中剪枝。原创 2024-02-05 08:42:32 · 966 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南: 有监督学习 多类和多输出算法
每个样本是一个水果图像,为每个属性输出一个标签,每个标签是相应属性的可能类别之一。链中的第一个模型没有关于其他标签的信息,而链中的最后一个模型具有指示所有其他标签存在的特征。通常情况下,人们不知道链中模型的最佳顺序,因此通常会拟合许多随机排序的链,并将它们的预测结果进行平均。元估计器扩展了基本估计器的功能,以支持多学习问题,这是通过将多学习问题转化为一组更简单的问题,然后为每个问题拟合一个估计器来实现的。本用户指南的这一部分介绍了与多学习问题相关的功能,包括多类、多标签和多输出的分类和回归。原创 2024-02-05 07:39:39 · 1215 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:集成学习:梯度提升、随机森林、装袋、投票、堆叠
在集成算法中,bagging方法是一类算法,它在原始训练集的随机子集上构建多个黑盒估计器的实例,然后将它们的个体预测聚合起来形成最终的预测。在给定的步骤中,那些在前一步引入的提升模型中被错误预测的训练示例的权重增加,而对于被正确预测的示例,权重减少。与随机森林一样,使用了候选特征的随机子集,但是不是寻找最具有区分度的阈值,而是为每个候选特征随机选择阈值,并从这些随机生成的阈值中选择最佳的作为分割规则。在决策树中,作为决策节点使用的特征的相对排名(即深度)可以用来评估该特征相对于目标变量的可预测性的重要性。原创 2024-02-05 07:38:26 · 1136 阅读 · 0 评论 -
Scikit-Learn 1.4使用指南:有监督学习 决策树 Decision Trees
当输出之间没有相关性时,解决这种问题的一种非常简单的方法是构建 n 个独立的模型,即为每个输出构建一个模型,然后使用这些模型独立地预测每个输出。然而,由于同一输入相关的输出值往往是相关的,通常更好的方法是构建一个能够同时预测所有 n 个输出的单个模型。在 splitter=‘best’ 且准则为 ‘gini’、‘entropy’ 或 ‘log_loss’(分类)或 ‘squared_error’、‘friedman_mse’ 或 ‘poisson’(回归)时,内置对缺失值的支持。原创 2024-02-04 22:06:17 · 713 阅读 · 1 评论