【机器学习 | Python】mlxtend 包的使用指南

一、mlxtend 包的介绍

https://rasbt.github.io/mlxtend/

Mlxtend是一个Python库,用于机器学习和数据科学任务中的扩展功能。它提供了一系列方便实用的工具和函数,可用于特征选择、模型评估、数据可视化等任务。以下是Mlxtend库的一些主要功能和特点:

  1. 特征选择:Mlxtend提供了多种特征选择的方法,包括基于特征重要性的方法、递归特征消除以及基于特征子集搜索的方法。
  2. 模型评估:该库提供了交叉验证、网格搜索以及模型性能评估的功能。可以使用交叉验证来评估模型的泛化能力,并使用网格搜索来寻找最佳的超参数组合。
  3. 集成学习:Mlxtend支持集成学习方法,如投票分类器、堆叠分类器和Adaboost等。这些方法可以提高模型的准确性和稳定性。
  4. 关联规则挖掘:Mlxtend包含了Apriori算法,用于发现数据集中的频繁项集和关联规则。这对于市场篮子分析和推荐系统等任务非常有用。
  5. 数据可视化:Mlxtend提供了多种绘图工具,可用于数据集的可视化和结果的呈现。它支持绘制分类边界、特征重要性图和学习曲线等。

总而言之,Mlxtend是一个功能强大且易于使用的机器学习扩展库,为数据科学家和机器学习实践者提供了丰富的工具和函数,以加速开发和改进机器学习模型的过程。

二、Mlxtend API介绍

2.1 mlxtend.classifier

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.classifier/
  1. Adaline(自适应线性神经元分类器):Adaline是一种自适应线性神经元分类器,它可以用于二元分类任务。它具有参数eta(学习速率)、epochs(迭代次数)、minibatches(小批量样本数)、random_seed(随机种子)等。
  2. EnsembleVoteClassifier(集成投票分类器):EnsembleVoteClassifier是一个用于scikit-learn估计器的软投票/多数表决分类器。它可以使用多个分类器,并根据不同的投票策略进行预测。
  3. LogisticRegression(逻辑回归分类器):LogisticRegression是一个逻辑回归分类器,用于处理二元分类问题。它具有参数eta(学习速率)、epochs(迭代次数)、l2_lambda(L2正则化参数)、minibatches(小批量样本数)、random_seed(随机种子)等。
  4. MultiLayerPerceptron(多层感知机分类器):MultiLayerPerceptron是一个多层感知机分类器,使用逻辑sigmoid激活函数。它具有参数eta(学习速率)、epochs(迭代次数)、hidden_layers(隐藏层大小列表)、momentum(动量参数)、l1(L1正则化参数)、l2(L2正则化参数)等。
  5. OneRClassifier(OneR分类器):OneRClassifier是一个使用One Rule算法的分类器。One Rule算法是一种简单但有效的规则学习算法,用于生成基于单个特征的决策规则。
  6. Perceptron(感知器分类器):Perceptron是一个感知器分类器,用于处理二元分类任务。它具有参数eta(学习速率)、epochs(迭代次数)、random_seed(随机种子)等。
  7. SoftmaxRegression(Softmax回归分类器):SoftmaxRegression是一个Softmax回归分类器,用于多类别分类。它具有参数eta(学习速率)、epochs(迭代次数)、l2(L2正则化参数)、minibatches(小批量样本数)等。
  8. StackingCVClassifier(交叉验证堆叠分类器):StackingCVClassifier是一个用于scikit-learn估计器的交叉验证堆叠分类器。它将多个分类器作为基本分类器,并使用元分类器对其预测结果进行堆叠。
  9. StackingClassifier(堆叠分类器):StackingClassifier是一个用于分类任务的堆叠分类器。它使用多个分类器作为基本分类器,并使用元分类器对其预测结果进行堆叠。

2.2 mlxtend.cluster

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.cluster/

mlxtend中的Kmeans类实现了K-means聚类算法,具有以下参数:

  1. k:指定要形成的簇的数量。
  2. max_iter:最大迭代次数,控制算法的收敛性。
  3. convergence_tolerance:收敛容差,当质心的变化小于此阈值时,算法停止迭代。
  4. random_seed:随机种子,用于控制随机初始化的一致性。
  5. print_progress:打印算法进度的选项。

2.3 mlxtend.data

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.data/
  1. autompg_data:Auto MPG数据集。
  2. boston_housing_data:波士顿房价数据集。
  3. iris_data:鸢尾花数据集。
  4. loadlocal_mnist:从ubyte文件中读取MNIST数据集。
  5. make_multiplexer_dataset:创建一个二进制n位多路复用器数据集。
  6. mnist_data:来自MNIST手写数字数据集的5000个样本。
  7. three_blobs_data:用于聚类的三个二维斑点数据集。
  8. wine_data:葡萄酒数据集。

2.4 mlxtend.evaluate

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.evaluate/
  1. BootstrapOutOfBag:用于基于自助法进行模型评估的方法。
  2. GroupTimeSeriesSplit:用于处理分组时间序列数据的交叉验证方法。
  3. PredefinedHoldoutSplit:用于指定训练/验证集划分的方法,可与sklearn的GridSearchCV等函数配合使用。
  4. RandomHoldoutSplit:用于随机划分训练/验证集的方法,可与sklearn的GridSearchCV等函数配合使用。
  5. accuracy_score:计算准确率的方法。
  6. bias_variance_decomp:计算偏差-方差分解的方法。
  7. bootstrap:实现普通非参数自助法的方法。
  8. cochrans_q:用于比较2个或多个模型的Cochran’s Q检验方法。
  9. combined_ftest_5x2cv:用于比较两个模型性能的5x2cv组合F检验方法。
  10. confusion_matrix:计算混淆矩阵/列联表的方法。
  11. create_counterfactual:实现反事实方法的方法。
  12. feature_importance_permutation:通过置换重要性计算特征重要性的方法。
  13. ftest:用于比较2个或多个模型的F-Test检验方法。
  14. lift_score:计算提升度的方法。
  15. mcnemar:用于配对名义数据的McNemar检验方法。
  16. mcnemar_table:计算McNemar检验的2x2列联表的方法。
  17. mcnemar_tables:计算McNemar检验或Cochran’s Q检验的多个2x2列联表的方法。
  18. paired_ttest_5x2cv:用于比较两个模型性能的5x2cv配对t检验方法。
  19. paired_ttest_kfold_cv:用于比较两个模型性能的k-fold配对t检验方法。
  20. paired_ttest_resampled:用于比较两个模型性能的重采样配对t检验方法。
  21. permutation_test:非参数置换检验的方法。
  22. proportion_difference:计算比例差异检验的方法。
  23. scoring:计算监督学习中的评分指标的方法。

2.5 mlxtend.feature_extraction

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.feature_extraction/
  1. LinearDiscriminantAnalysis:线性判别分析(Linear Discriminant Analysis,LDA)类。
  2. PrincipalComponentAnalysis:主成分分析(Principal Component Analysis,PCA)类。
  3. RBFKernelPCA:径向基核主成分分析(RBF Kernel Principal Component Analysis)类,用于降低数据维度。

2.6 mlxtend.feature_selection

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.feature_selection/
  1. ColumnSelector:用于从数据集中选择特定列的对象。可以根据指定的列索引或列名来选择需要的列数据。
  2. ExhaustiveFeatureSelector:用于进行穷举特征选择的方法。该方法通过遍历所有可能的特征组合来选择最佳的特征子集,以提高模型性能。
  3. SequentialFeatureSelector:用于进行顺序特征选择的方法。该方法通过迭代地添加或删除特征来选择最佳的特征子集,以提高模型性能。可以使用前向选择(forward)、后向选择(backward)或浮动选择(floating)策略。

2.7 mlxtend.file_io

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.file_io/
  1. find_filegroups:用于从不同目录中查找和收集文件的方法。可以根据指定的路径、文件名子字符串、文件扩展名等条件,在不同目录中查找符合条件的文件,并将它们收集到一个Python字典中。
  2. find_files:用于在指定目录中根据文件名子字符串进行文件查找的方法。可以根据指定的子字符串匹配条件,在指定的目录中查找符合条件的文件,并返回匹配的文件列表。

2.8 mlxtend.frequent_patterns

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.frequent_patterns/
  1. apriori:从一个独热编码的DataFrame中获取频繁项集。该方法基于Apriori算法,根据最小支持度筛选出频繁项集,可以用于发现数据中频繁出现的组合。
  2. association_rules:生成关联规则的DataFrame,包括指标如’支持度’、'置信度’和’提升度’等。可以根据指定的关联规则评价指标和最小阈值筛选出具有一定关联性的规则。
  3. fpgrowth:从一个独热编码的DataFrame中获取频繁项集。该方法基于FP-Growth算法,使用FP树数据结构高效地挖掘频繁项集,适用于大规模数据集。
  4. fpmax:从一个独热编码的DataFrame中获取极大频繁项集。与频繁项集不同,极大频繁项集是指不再有超集是频繁项集的项集,具有更高的抽象度和概括性。
  5. hmine:从一个独热编码的DataFrame中获取频繁项集。该方法基于Hash算法,以哈希表为基础实现高效的频繁项集挖掘。

2.9 mlxtend.image

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.image/
  1. EyepadAlign:人脸图像对齐/变换类,基于眼睛对齐的方法。该类可用于将人脸图像对齐到面部特征点,以实现标准化的人脸对齐操作。
  2. extract_face_landmarks:用于提取人脸特征点的函数。该函数接受一个图像作为输入,并返回检测到的人脸特征点的位置。通过提取人脸特征点,可以进一步应用于人脸分析、表情识别、人脸识别等任务。

2.10 mlxtend.plotting

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.plotting/
  1. category_scatter:绘制散点图,可以使用不同的颜色和标记样式表示不同的类别。
  2. checkerboard_plot:通过matplotlib绘制棋盘图表/热图。
  3. ecdf:绘制经验累积分布函数(ECDF)图。
  4. enrichment_plot:绘制堆叠条形图。
  5. heatmap:通过matplotlib绘制热图。
  6. plot_confusion_matrix:绘制混淆矩阵图。
  7. plot_decision_regions:绘制分类器的决策边界。
  8. plot_learning_curves:绘制分类器的学习曲线。
  9. plot_linear_regression:绘制线性回归拟合线。
  10. plot_pca_correlation_graph:计算主成分分析(PCA)并绘制相关性图。
  11. plot_sequential_feature_selection:绘制特征选择结果图。
  12. remove_borders:从matplotlib图中去除边框。
  13. scatter_hist:绘制散点图,并沿轴绘制各个特征的直方图。
  14. scatterplotmatrix:绘制散点图矩阵。
  15. stacked_barplot:绘制堆叠条形图。

2.11 mlxtend.regressor

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.regressor/
  1. LinearRegression:最小二乘线性回归模型。它使用普通最小二乘法来拟合线性模型。
  2. StackingCVRegressor:用于回归问题的堆叠交叉验证回归器。它基于scikit-learn估计器实现了堆叠回归模型,可以通过交叉验证进行性能评估和模型选择。
  3. StackingRegressor:用于回归问题的堆叠回归器。它基于scikit-learn估计器实现了堆叠回归模型,可以通过将多个基本回归模型的预测结果作为输入,使用元回归模型进行集成。

2.12 mlxtend.preprocessing

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.preprocessing/
  1. CopyTransformer:返回输入数组的副本的转换器。
  2. DenseTransformer:将稀疏数组转换为密集数组的转换器。
  3. MeanCenterer:对向量和矩阵进行列中心化的转换器。
  4. TransactionEncoder:用于Python列表中事务数据的编码器类。
  5. minmax_scaling:对pandas DataFrame进行最小-最大缩放。
  6. one_hot:对类别标签进行独热编码。
  7. shuffle_arrays_unison:同时打乱NumPy数组的转换器。
  8. standardize:对pandas DataFrame中的列进行标准化。

2.13 mlxtend.text

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.text/
  1. generalize_names:将人的姓和名进行泛化处理,返回格式为<姓><分隔符><名字的第一个或几个字母>的姓名字符串。
  2. generalize_names_duplcheck:对DataFrame中的姓名列进行泛化处理并去除重复值。默认情况下,使用mlxtend.text.generalize_names方法对姓和名进行泛化处理,并根据是否存在重复值选择使用更多的名字字母进行泛化。
  3. tokenizer_emoticons:从文本中提取出表情符号(emoticons)。
  4. tokenizer_words_and_emoticons:将文本转换为小写的单词和表情符号(emoticons)。

2.14 mlxtend.utils

https://rasbt.github.io/mlxtend/api_subpackages/mlxtend.utils/
  1. Counter:用于显示for循环迭代器的进度。可以在循环中使用该类来跟踪迭代器的进度,并显示进度条。
  2. assert_raises:用于检查特定异常是否被引发,并验证异常消息是否与预期相符。可以使用该方法来进行单元测试,确保特定代码段引发了预期的异常。
  3. format_kwarg_dictionaries:用于合并默认的关键字参数字典和用户指定的关键字参数字典。该方法可以帮助在函数或方法中处理和组合不同来源的关键字参数,例如默认参数和用户提供的参数。
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
机器学习Python应用》是由陈强撰写的一本针对机器学习Python编程的教程。本书主要介绍了机器学习的基本理论和算法,并通过Python编程语言实现了这些算法。 首先,本书从机器学习的基本概念开始讲解,介绍了监督学习、无监督学习和强化学习等不同的学习任务。然后,详细介绍了机器学习中常用的算法,例如线性回归、逻辑回归、支持向量机、决策树、随机森林和深度学习等。每个算法的原理和应用场景都有详细的说明,并通过代码实例演示了如何使用Python实现这些算法。 此外,本书还介绍了机器学习的评估方法和调参技巧。作者详细解释了模型评估的常用指标,例如准确率、精确率、召回率和F1得分等,并介绍了交叉验证和网格搜索等调参方法。这些内容帮助读者更好地评估和优化机器学习模型。 值得一提的是,本书的代码示例都是使用Python编写的。Python是一种简单易学的编程语言,并且有许多优秀的机器学习库,如Scikit-learn、TensorFlow和Keras等,可以方便地实现机器学习算法。通过本书的学习,读者不仅可以掌握机器学习的基本理论和算法,还可以学会使用Python编程语言来应用这些算法解决实际问题。 总而言之,《机器学习Python应用》是一本专门介绍机器学习Python编程的教程。通过学习本书,读者可以全面了解机器学习的基本概念和算法,并且可以通过Python编程语言实现和应用这些算法。无论是初学者还是有一定编程基础的人士,都可以通过本书掌握机器学习Python编程的基本技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值