发布说明
当前开发版本的 CHANGELOG 可在此处查看:https://github.com/rasbt/mlxtend/blob/master/docs/sources/CHANGELOG.md。
版本 0.23.3 (2024 年 11 月 15 日)
下载
新特性和增强功能
更新文件: - mlxtend.evaluate.time_series.plot_splits
- 改进了 plot_splits
以更好地可视化时间序列分割
变更
mlxtend/feature_selection/exhaustive_feature_selector.py
- 更新 np.inf 以支持 NumPy 2.0
版本 0.23.2 (2024 年 11 月 5 日)
下载
新特性和增强功能
- 实现 FP-Growth 和 FP-Max 算法,支持输入数据集中存在缺失值。为生成的关联规则添加了一个新的度量指标代表性(Representativity)(通过 zazass8 实现,#1004)。更新文件
- ['mlxtend.frequent_patterns.fpcommon']
- 'mlxtend.frequent_patterns.fpgrowth'
- 'mlxtend.frequent_patterns.fpmax'
- 'mlxtend/feature_selection/utilities.py'
- 修改了
_calc_score
函数,通过在cross_val_score
中动态选择fit_params
和params
,确保与 scikit-learn 1.4 及以上版本兼容。
- 修改了
mlxtend.feature_selection.SequentialFeatureSelector
- 更新了负无穷常数,以兼容旧版本和新版本 (>=2.0) 的
numpy
- 更新了负无穷常数,以兼容旧版本和新版本 (>=2.0) 的
mlxtend.frequent_patterns.association_rules
- 实现了三个新指标:Jaccard、Certainty 和 Kulczynski。(#1096)
- 将 scikit-learn 的
set_output
方法集成到TransactionEncoder
中(通过 it176131 实现,#1087)
变更
- [
mlxtend.frequent_patterns.fpcommon
] 在 valid_input_check 签名中添加了 null_values 参数,用于检查输入是否包含空值。更改了 setup_fptree 和 generated_itemsets 的返回语句和函数签名,分别返回创建的禁用数组并将其包含为参数。在 [mlxtend.frequent_patterns.fpcommon
] 和mlxtend.frequent_patterns.association_rules
中添加了代码,以便在 null_values 为 True 且存在空值时实现算法。 -
mlxtend.frequent_patterns.association_rules
添加了可选参数 'return_metrics',仅返回指定的指标列表,而不是所有可能的指标。 -
为 stacking 分类器添加
n_classes_
属性,以兼容 scikit-learn 1.3(#1091) - 在 PCA 中使用 Scipy 的分解而不是 NumPy 的分解,以提高边缘情况下的精度(通过 [fkdosilovic] 实现,#1080)
版本 0.23.1 (2024 年 1 月 5 日)
下载
变更
版本 0.23.0 (2023 年 9 月 22 日)
下载
变更
- 解决 NumPy 弃用问题,使 mlxtend 兼容 NumPy 1.24
- 在测试中更改了 sklearn 的
LinearRegression
模型的签名,移除了已弃用的normalize
参数。(#1036) - 添加
pyproject.toml
以支持 PEP 518 构建(通过 jmahlik 实现,#1065) - 修复了 sdist 安装失败的问题(通过 jmahlik 实现,#1065)
- 将配置转换为
pyproject.toml
(通过 jmahlik 实现,#1065) - 移除包含人脸识别功能的
mlxtend.image
子模块,原因是现代环境中dlib
支持不佳。
新特性和增强功能
- 文档说明如何使用
SequentialFeatureSelector
和多类别 ROC AUC。
版本 0.22.0 (2023 年 4 月 4 日)
下载
变更
- 当使用
n_jobs == 1
运行ExhaustiveFeatureSelector
时,现在禁用 joblib,这使得在启用verbose
模式时能够获得更即时的(实时)反馈。(通过 Nima Sarajpoor 实现,#985) - 禁用了
EnsembleVoteClassifier
中不必要的警告(#941) - 修复了各种文档问题(通过 Lekshmanan Natarajan 实现,#849 和 #951)
- 修复了“在 GitHub 上编辑”按钮(#1024)
新特性和增强功能
mlxtend.frequent_patterns.association_rules
函数新增一个指标 - Zhang 指标,该指标同时衡量关联和解离。(#980)- 内部
mlxtend.frequent_patterns.fpmax
代码改进,避免将稀疏 DataFrame 转换为密集 NumPy 数组。(通过 Tim Kellogg 实现,#1000) plot_decision_regions
函数现在具有n_jobs
参数,用于并行计算。(在特定用例中,对于小型数据集,速度提高了 21 倍(在具有 36 个核心的本地 HPC 实例上,从 449 秒减少到 21 秒)。)(通过 Khalid ElHaj 实现,#998)- 添加了
mlxtend.frequent_patterns.hmine
算法和文档,用于使用 H-Mine 算法挖掘频繁项集。(通过 Fatih Sen 实现,#1020)
版本 0.21.0 (2022 年 9 月 17 日)
下载
新特性和增强功能
mlxtend.evaluate.feature_importance_permutation
函数新增一个feature_groups
参数,用于将用户指定的特征组视为单个特征,这对于 one-hot 编码的特征很有用。(#955)mlxtend.feature_selection.ExhaustiveFeatureSelector
和SequentialFeatureSelector
也增加了对feature_groups
的支持,其行为类似于上述描述。(通过 Nima Sarajpoor 实现,#957 和 #965)
变更
- 由于冗余并为了简化代码库,从
ExhaustiveFeatureSelector
中移除了custom_feature_names
参数。ExhaustiveFeatureSelector 文档
说明了如何使用 pandas DataFrame 实现相同的行为和结果。(#957)
错误修复
- 无
版本 0.20.0 (2022 年 5 月 26 日)
下载
新特性和增强功能
mlxtend.evaluate.bootstrap_point632_score
现在支持fit_params
。(#861)mlxtend/plotting/decision_regions.py
函数现在有一个contourf_kwargs
参数,用于 matplotlib 中更改决策边界的外观(如果需要)。(通过 [pbloem] 实现,#881)- 向
mlxtend.plotting.plot_confusion_matrix
添加norm_colormap
参数,允许对颜色映射进行归一化,例如使用matplotlib.colors.LogNorm()
(#895) - 添加新的
GroupTimeSeriesSplit
类,用于时间序列任务中的评估,支持自定义分组和与 scikit-learn 的TimeSeriesSplit
相比的其他参数。(通过 Dmitry Labazkin 实现,#915)
变更
- 由于与较新包版本的兼容性问题,已移除 six.py 中的某些函数,因此 mlxtend 可能不再与 Python 2.7 一起工作。
- 作为一项内部更改以加快单元测试,单元测试现在由 GitHub workflows 协助完成,并已移除 Travis CI 和 Appveyor hook。
- 改进了
mlxtend.plotting.heatmap
和mlxtend.plotting.plot_confusion_matrix
中的轴标签旋转(#872) - 修复 McNemar 指南中的各种拼写错误。
- 如果在频繁模式函数
apriori
、fpmax
和fpgrowth
中使用了非布尔数组,则会发出警告。(通过 NimaSarajpoor 实现,#934)
错误修复
- 修复
heatmap
中某些颜色映射导致标签不可读的问题。(#852) - 修复向
mlxtend.plotting.plot_confusion_matrix
传递字符串类别名称时出现的问题(#894)
版本 0.19.0 (2021 年 9 月 2 日)
下载
新特性
- 在
evaluate.accuracy_score
中添加了第二个“平衡精度”解释(“balanced”),除了现有的“average”选项之外,用于计算 scikit-learn 风格的平衡精度。(#764) - 向
mlxtend.plotting
添加新的scatter_hist
函数,用于生成散点直方图。(通过 Maitreyee Mhasaka 实现,#757) evaluate.permutation_test
函数现在接受paired
参数,用于指定是否支持配对置换/随机化检验。(#768)StackingCVRegressor
现在也支持类似StackingRegressor
的多维目标,通过StackingCVRegressor(..., multi_output=True)
实现。(通过 Marco Tiraboschi 实现,#802)
变更
- 更新了单元测试以兼容 scikit-learn 0.24.1。(#774)
- 如果目标是多维的,
StackingRegressor
现在需要设置StackingRegressor(..., multi_output=True)
;这有助于更好地进行输入验证。(#802) - 移除了
plot_decision_regions
中已弃用的res
参数。(#803) - 向
plot_learning_curves
添加title_fontsize
参数,用于控制标题字体大小;同时,绘图样式现在为 matplotlib 的默认样式。(#818) - 内部更改,在
mlxtend.plotting.plot_decision_regions
的散点图高亮中,使用'c': 'none'
代替'c': ''
,以保持与 Matplotlib 3.4 及更新版本的兼容性。(#822) - 向
mlxtend.plotting.plot_confusion_matrix
函数添加fontcolor_threshold
参数,作为手动确定字体颜色截止值的附加选项。(#827) - 如果传递空的频繁项集 DataFrame,
frequent_patterns.association_rules
现在会引发ValueError
。(#843) - 在
mlxtend.evaluate.bootstrap_point632_score
函数中实现的 .632 和 .632+ 自助法现在使用整个训练集作为重替代加权项,而不是每轮都是新自助样本的内部训练集。(#844)
错误修复
- 修复了 SequentialFeatureSelector 文档中的一个拼写错误(通过 João Pedro Zanlorensi Cardoso 实现,#835)
版本 0.18.0 (2020 年 11 月 25 日)
下载
新特性
bias_variance_decomp
函数现在支持对在自助样本上拟合的估计器使用可选的fit_params
。(#748)bias_variance_decomp
函数现在支持 Keras 估计器。(通过 @hanzigs 实现,#725)- 添加新的
mlxtend.classifier.OneRClassifier
(单规则分类器)类,这是一种简单的基于规则的分类器,常被用作性能基线或简单的可解释模型。(#726) - 添加新的
create_counterfactual
方法,用于创建反事实以解释模型预测。(#740)
变更
permutation_test
(mlxtend.evaluate.permutation
) 已更正为给出其统计量*至少与观测值一样极端*的置换比例。(通过 Florian Charlier 实现,#721)- 修复 McNemar 混淆矩阵布局以符合约定(和文档),交换左上角和右下角单元格。(通过 mmarius 实现,#744)
错误修复
- 用于日志记录目的的
LogisticRegression
损失函数未包含权重向量中第一个权重的 L2 惩罚(这不是偏置单元)。然而,由于此损失函数仅用于日志记录,并且梯度保持正确,因此这不会影响主代码。(#741) - 修复了
bias_variance_decomp
中的一个错误,在使用mse
损失时,向下转换为整数会导致小数字的不精确结果。(#749)
版本 0.17.3 (2020 年 7 月 27 日)
下载
新特性
- 为自助法方法添加
predict_proba
kwarg,以允许对接受概率值的评分函数进行自助抽样。(通过 Adam Li 实现,#700) - 向
mlxtend.plotting.heatmap()
添加cell_values
参数,通过设置cell_values=False
可选地禁止单元格注释。(#703)
变更
- 为
EnsembleVoteClassifier
和StackingClassifier
实现了use_clones
和fit_base_estimators
(之前在EnsembleVoteClassifier
中称为refit
)。(通过 Katrina Ni 实现,#670) - 在
mlxtend.text
中切换到使用原始字符串进行正则表达式匹配,以防止在 Python 3.8 中出现弃用警告(#688) - 在将数据发送到并行后端之前,在顺序前向选择中对数据进行切片,以减少内存消耗。
错误修复
- 修复 matplotlib v3.1.0 及更新版本中轴的 DeprecationWarning。(#673)
- 修复
bootstrap_point632_score
函数中用于 .632+ 估计的no_information_rate
函数中使用meshgrid
的问题。(#688) - 修复
fpmax
中的一个问题,该问题可能导致支持值不正确。(通过 Steve Harenberg 实现,#692)
版本 0.17.2 (2020 年 2 月 24 日)
下载
新特性
- -
变更
- 之前已弃用的
OnehotTransactions
已被移除,推荐使用TransactionEncoder
。 - 在频繁模式挖掘函数中移除了
SparseDataFrame
支持,推荐使用 pandas >=1.0 处理稀疏数据的新方式。如果您使用了SparseDataFrame
格式,请参阅 pandas 的迁移指南:https://pandas.ac.cn/pandas-docs/stable/user_guide/sparse.html#migrating。(#667) plot_confusion_matrix.py
现在也接受 matplotlib 图形和轴作为输入,可以将混淆矩阵图添加到其中。(通过 Vahid Mirjalili 实现,#671)
错误修复
- -
版本 0.17.1 (2020 年 1 月 28 日)
下载
新特性
SequentialFeatureSelector
现在支持通过fixed_features
参数使用预先指定的特征集。(#578)- 向
mlxtend.evaluate
添加新的accuracy_score
函数,用于计算基本分类精度、每类别精度和平均每类别精度。(通过 Deepan Das 实现,#624) StackingClassifier
和StackingCVClassifier
现在具有decision_function
方法,当元估计器是线性模型或支持向量分类器时,该方法在计算 roc_auc 和 average_precision 分数方面优于predict_proba
。(通过 Qiang Gu 实现,#634)
变更
- 当
low_memory=True
时,提高了apriori
频繁项集生成函数的运行时性能。对于小型项集,设置low_memory=False
(默认值)仍然更快,但对于大型项集,low_memory=True
可以快得多并且需要更少的内存。此外,当输入 pandas DataFrame 很大时,对apriori
、̀ fpgrowth和
fpmax的输入验证需要大量时间;当输入包含布尔值(而不是零/一)时,这种情况现在大大减少,这在使用
TransactionEncoder` 时就是这种情况。(通过 Denis Barbier 实现,#619) - 为频繁项集算法添加了对较新的稀疏 pandas DataFrame 的支持。此外,当输入的 pandas DataFrame 包含整数值时,对
apriori
、̀ fpgrowth和
fpmax` 的输入验证在稀疏 DataFrame 上运行得快得多。(通过 Denis Barbier 实现,#621) - 让
fpgrowth
和fpmax
直接在稀疏 DataFrame 上工作,它们之前被转换为密集的 Numpy 数组。(通过 Denis Barbier 实现,#622)
错误修复
- 修复了
mlxtend.plotting.plot_pca_correlation_graph
中的一个错误,该错误导致解释方差总和不为 1。此外,提高了相关性计算的运行时性能,并添加了一个缺失的函数参数,用于在用户提供自己的主成分时输入解释方差(特征值)。(通过 Gabriel Azevedo Ferreira 实现,#593) fpgrowth
和apriori
对于边缘情况(例如min_support=0
)的行为一致。(通过 Steve Harenberg 实现,#573)- 如果频繁项集为空,
fpmax
现在返回一个空数据框,而不是引发错误。(通过 Steve Harenberg 实现,#573) - 修复了
mlxtend.plotting.plot_confusion_matrix
中的一个问题,即中深色单元格的字体颜色选择不理想,难以阅读。(通过 sohrabtowfighi 实现,#588) mlxtend.feature_extraction.PrincipalComponentAnalysis
的svd
模式现在在计算特征值时也使用 n-1 自由度而不是 n 自由度,以匹配eigen
的行为。#595- 禁用
StackingCVClassifier
的输入验证,因为它在将 pipeline 用作输入时会导致问题。#606
版本 0.17.0 (2019 年 7 月 19 日)
下载
新特性
- 对现有的
iris_data()
进行了增强,现在可以加载 Iris 数据集的 UCI Repository 版本以及已更正的原始版本,这两个版本在两个数据点上略有差异(与 Fisher 的论文一致;这也与 R 中的相同)。(通过 janismdhanbad 实现,#539) - 向
SequentialFeatureSelector
和ExhaustiveFeatureSelector
的fit()
方法添加可选的groups
参数,用于转发给 sklearn CV。(通过 arc12 实现,#537) - 向
mlxtend.plotting
子模块添加新的plot_pca_correlation_graph
函数,用于绘制 PCA 相关性图。(通过 Gabriel-Azevedo-Ferreira 实现,#544) - 向
mlxtend.plotting.plot_decision_region
函数添加zoom_factor
参数,允许用户放大和缩小决策区域图。(#545) - 添加了函数
fpgrowth
,实现了 FP-Growth 算法用于挖掘频繁项集,作为现有apriori
算法的直接替代品。(通过 Steve Harenberg 实现,#550) mlxtend.plotting
中新增heatmap
函数。(#552)- 添加了函数
fpmax
,实现了 FP-Max 算法用于挖掘最大项集,作为fpgrowth
算法的直接替代品。(通过 Steve Harenberg 实现,#553) mlxtend.plotting
中plot_decision_regions
函数新增figsize
参数。(通过 Mirza Hasanbasic 实现,#555)apriori
频繁项集生成函数新增low_memory
选项。设置low_memory=False
(默认值)使用了一个大幅优化的算法版本,比原始实现(low_memory=True
)快 3-6 倍。(通过 jmayse 实现,#567)- 向
mlxtend.regressor.linear_regression
中的LinearRegression
添加了数值稳定的 OLS 方法,该方法使用了QR decomposition
和Singular Value Decomposition
(SVD) 方法。(通过 PuneetGrov3r 实现,#575)
变更
- 现在在内部使用最新的 joblib 库进行多处理,而不是
sklearn.externals.joblib
。(#547) - 更改了
StackingCVClassifier
和StackingCVRegressor
,使得第一级模型可以生成非数值类型的输出。(#562)
错误修复
- 通过添加关于 R 和 UCI 机器学习仓库中鸢尾花数据差异的说明,修复了
iris.py
中iris_data()
的文档。 - 确保如果在 PCA 中使用
'svd'
模式,特征值的数量与使用'eigen'
时相同(在这种情况下添加 0) (#565)
版本 0.16.0 (2019 年 5 月 12 日)
下载
新特性
StackingCVClassifier
和StackingCVRegressor
现在支持random_state
参数,该参数与shuffle
一起控制交叉验证分割的随机性。(通过 Qiang Gu 实现,#523)StackingCVClassifier
和StackingCVRegressor
现在有一个新的drop_last_proba
参数。如果设置为True
,它会删除特征集中的最后一个“概率”列,因为它是冗余的:p(y_c) = 1 - p(y_1) + p(y_2) + ... + p(y_{c-1})。这对于对完全共线特征敏感的元分类器很有用。(#532)- 包括
StackingClassifier
、StackingCVClassifier
和StackingRegressor
在内的其他 stacking 估计器支持对regressors
进行网格搜索,甚至支持单个基础回归器。(通过 Qiang Gu 实现,#522) - 向
StackingCVClassifier
添加多处理支持。(通过 Qiang Gu 实现,#522) - 向
StackingCVRegressor
添加多处理支持。(通过 Qiang Gu 实现,#512) - 现在,
StackingCVRegressor
也支持对regressors
进行网格搜索,甚至支持单个基础回归器。当存在混合级别参数时,GridSearchCV
将尝试按自上而下的顺序替换超参数(有关示例详细信息,请参阅文档)。(通过 Qiang Gu 实现,#515) - 向
apriori
添加verbose
参数,以显示当前迭代次数以及当前正在采样的项集大小。(#519) - 向混淆矩阵函数添加可选的
class_name
参数,以在轴上将类别名称显示为刻度。(通过 sandpiturtle 实现,#487) - 向 PCA 添加
pca.e_vals_normalized_
属性,用于存储归一化形式的特征值;这通常被称为方差解释比。#545
变更
- 由于新特性、重构和更好的 scikit-learn 支持(例如
GridSearchCV
),StackingCVRegressor
的元回归器现在通过参数网格中的'meta_regressor__*
进行访问。例如,如果之前通过'randomforestregressor__n_estimators'
调整作为元回归器的RandomForestRegressor
,现在已更改为'meta_regressor__n_estimators'
。(通过 Qiang Gu 实现,#515) - 上述相同的更改现在已应用于其他 stacking 估计器,包括
StackingClassifier
、StackingCVClassifier
和StackingRegressor
。(通过 Qiang Gu 实现,#522) - 自动对 PCA solver 'SVD' 执行均值中心化,使得使用 SVD 始终等同于使用协方差矩阵方法 #545
错误修复
- 如果输入是 pandas DataFrame,
feature_selection.ColumnSelector
现在也支持int
类型的列名(除了str
名称)。(通过 tetrar124 实现,#500) - 如果
show_absolute=True
和show_normed=True
,修复了plot_confusion_matrix
中不平衡数据集标签不可读的问题。(#504) - 如果将
SparseDataFrame
传递给apriori
并且由于 pandas 中SparseDataFrame
实现的当前限制,数据框具有不以0
开头的整数列名,则会引发更具信息性的错误。(#503) - SequentialFeatureSelector 现在支持 DataFrame 作为所有操作模式(前向/后向/浮动)的输入。#506
mlxtend.evaluate.feature_importance_permutation
现在正确地接受具有正确函数签名的评分函数作为metric
参数。#528
版本 0.15.0 (2019 年 1 月 19 日)
下载
新特性
- 向
mlxtend.image
添加新的转换器类EyepadAlign
,该类根据眼睛的位置对人脸图像进行对齐。(通过 Vahid Mirjalili 实现,#466) - 添加新的函数
mlxtend.evaluate.bias_variance_decomp
,将回归器或分类器的损失分解为偏差和方差项。(#470) - 向
PrincipalComponentAnalysis
添加whitening
参数,可选地对转换后的数据进行白化,使得特征具有单位方差。(#475)
变更
- 将
PrincipalComponentAnalysis
中的默认 solver 更改为'svd'
而不是'eigen'
,以提高数值稳定性。(#474) - 如果未检测到人脸特征点,
mlxtend.image.extract_face_landmarks
现在返回None
,而不是全零数组。(#466)
错误修复
- 在
PrincipalComponentAnalysis
和LinearDiscriminantAnalysis
中,如果 solver 为'eigen'
,在某些边缘情况下特征向量可能未排序。(#477, #478)
版本 0.14.0 (2018 年 11 月 9 日)
下载
新特性
- 向
plotting
模块添加了scatterplotmatrix
函数。(#437) - 向
StackingRegressor
、StackingClassifier
、StackingCVRegressor
、StackingCVClassifier
、EnsembleVoteClassifier
添加了sample_weight
选项。(#438) - 添加了
RandomHoldoutSplit
类,用于在SequentialFeatureSelector
、scikit-learnGridSearchCV
等中执行随机训练/验证分割而无需旋转。(#442) - 添加了
PredefinedHoldoutSplit
类,用于在SequentialFeatureSelector
、scikit-learnGridSearchCV
等中,根据用户指定的索引执行训练/验证分割而无需旋转。(#443) - 创建了新的
mlxtend.image
子模块,用于处理图像处理相关任务。(#457) - 向
mlxtend.image
添加了基于dlib
的新便利函数extract_face_landmarks
。(#458) - 向
mlxtend.evaluate.bootstrap_point632_score
方法添加了method='oob'
选项,用于计算经典的袋外自助估计值(#459) - 向
mlxtend.evaluate.bootstrap_point632_score
方法添加了method='.632+'
选项,用于计算解决 .632 自助法乐观偏差的 .632+ 自助估计值(#459) - 添加了新的
mlxtend.evaluate.ftest
函数,用于执行 F 检验,比较两个或多个分类模型的准确性。(#460) - 添加了新的
mlxtend.evaluate.combined_ftest_5x2cv
函数,用于执行组合的 5x2cv F 检验,比较两个模型的性能。(#461) - 添加了新的
mlxtend.evaluate.difference_proportions
测试,用于比较两个比例(例如,分类器准确性)(#462)
变更
- 解决了 NumPy 0.15 中的弃用警告。(#425)
- 由于 PR (#459) 中的复杂性,现在已放弃 Python 2.7;由于 Python 软件基金会对 Python 2.7 的官方支持大约在 12 个月后结束,这种重新聚焦有望在不担心向后兼容性方面节省一些开发时间。
错误修复
- 修复了
mlxtend.plotting.plot_confusion_matrix
中缺少导入的问题。(#428)
版本 0.13.0 (2018 年 7 月 20 日)
下载
新特性
- 当
SequentialFeatureSelector
与交叉验证生成器一起使用时,现在会引发有意义的错误消息。(#377) SequentialFeatureSelector
现在通过fit
方法接受自定义特征名称,以便生成更具可解释性的特征子集报告。(#379)SequentialFeatureSelector
现在也兼容 Pandas DataFrame,并使用 DataFrame 列名生成更具可解释性的特征子集报告。(#379)ColumnSelector
现在适用于 Pandas DataFrame 列。(由 Manuel Garrido 实现,#378)mlxtend.feature_selection
中的ExhaustiveFeatureSelector
估计器现在可以通过 control+c 在中途安全地停止。(#380)- 向
mlxtend.math
添加了两个新函数vectorspace_orthonormalization
和vectorspace_dimensionality
,分别用于使用 Gram-Schmidt 过程将一组线性独立向量转换为一组正交基向量,以及计算向量空间的维数。(#382) mlxtend.frequent_patterns.apriori
现在支持 pandasSparseDataFrame
生成频繁项集。(通过 Daniel Morales 实现,#404)plot_confusion_matrix
函数现在除了或替代绝对混淆矩阵系数外,还能够显示归一化混淆矩阵系数,带或不带颜色条。文本显示方法已更改,以便使用颜色映射的完整范围。默认大小现在也根据类别数量设置。- 向
StackingRegressor
添加了将元特征与原始输入特征合并的支持(通过use_features_in_secondary
),就像在其他 Stacking 类中已支持的那样。(#418) - 向
association_rules
函数添加了support_only
参数,允许对不包含完整前件和后件支持值的裁剪输入 DataFrame 构建关联规则(仅基于支持度量)。(#421)
变更
- 使用
apriori
生成的项集现在是frozenset
s (#393 由 William Laney 和 #394) - 现在,如果输入到
apriori
的 DataFrame 包含非 0、1、True、False 的值,则会引发错误。 #419)
错误修复
- 允许通过 scikit-learn 的
clone
函数克隆 mlxtend 估算器。 (#374) - 修复了允许在
StackingRegressor
和StackingCVRegressor
中正确使用refit=False
的错误 (#384 和 (#385) 由 selay01) - 允许
StackingClassifier
在use_features_in_secondary=True
时使用稀疏矩阵 (#408 由 Floris Hoogenbook) - 允许
StackingCVRegressor
在use_features_in_secondary=True
时使用稀疏矩阵 (#416) - 允许
StackingCVClassifier
在use_features_in_secondary=True
时使用稀疏矩阵 (#417)
版本 0.12.0 (2018-04-21)
下载
新特性
- 新增
feature_importance_permuation
函数,用于通过*置换重要性*方法计算分类器和回归器中的特征重要性 (#358) ExhaustiveFeatureSelector
的 fit 方法现在可选地接受用于特征选择的估算器的**fit_params
。 (#354 由 Zach Griffith)SequentialFeatureSelector
的 fit 方法现在可选地接受用于特征选择的估算器的**fit_params
。 (#350 由 Zach Griffith)
变更
- 将
plot_decision_regions
的颜色替换为对色盲友好的调色板,并添加决策区域的等高线。 (#348) - 所有堆叠估算器现在如果在拟合之前调用任何推理方法,则会引发
NonFittedErrors
。 (#353) - 将
StackingClassifier
和StackingCVClassifier
的refit
参数重命名为use_clones
,使其更明确且不易误导。 (#368)
错误修复
- 文档和文档工具的各种更改,用于修复格式问题 (#363)
- 修复了在
shuffle=True
时StackingCVClassifier
的元特征未按原始顺序存储的错误 (#370) - 许多文档改进,包括 API 文档中指向用户指南的链接 (#371)
版本 0.11.0 (2018-03-14)
下载
新特性
- 新增函数实现了重采样配对 t 检验过程(
paired_ttest_resampled
),用于比较两个模型的性能。 (#323) - 新增函数实现了 k 折配对 t 检验过程(
paired_ttest_kfold_cv
),用于比较两个模型的性能(也称为 k 留存配对 t 检验)。 (#324) - 新增函数实现了 Dieterrich (1998) 提出的 5x2cv 配对 t 检验过程(
paired_ttest_5x2cv
),用于比较两个模型的性能。 (#325) - 为堆叠类添加了
refit
参数(类似于EnsembleVoteClassifier
中的refit
参数),以支持遵循 scikit-learn API 但与 scikit-learn 的clone
函数不兼容的分类器和回归器。 (#322) ColumnSelector
现在有一个drop_axis
参数,可以在与CountVectorizer
一起使用的管道中使用。 (#333)
变更
- 如果在
StackingRegressor
和StackingCVRegressor
中调用fit
方法之前调用了predict
或predict_meta_features
,则会引发信息性错误消息。 (#315) plot_decision_regions
函数现在根据特征维度自动确定最佳设置并支持抗锯齿。旧的res
参数已被弃用。 (#309 由 Guillaume Poirier-Morency)- Apriori 代码由于
onehot transformation
的优化以及apriori
算法生成的候选数量而更快。 (#327 由 Jakub Smid) OnehotTransactions
类(通常与apriori
函数结合用于关联规则挖掘)现在更节省内存,因为它使用布尔数组而不是整数数组。此外,OnehotTransactions
类现在可以提供sparse
参数来生成onehot
矩阵的稀疏表示,以进一步提高内存效率。 (#328 由 Jakub Smid)OneHotTransactions
已被弃用,并由TransactionEncoder
取代。 (#332plot_decision_regions
函数现在有三个新参数:scatter_kwargs
、contourf_kwargs
和scatter_highlight_kwargs
,可用于修改绘图样式。 (#342 由 James Bourbeau)
错误修复
- 修复了在
refit
设置为false
时向EnsembleVoteClassifier
提供类别标签的问题。 (#322) - 允许在
plot_decision_regions
函数中使用 16 位和 32 位精度的数组。 (#337) - 修复了在使用 conviction 指标计算关联规则时,如果项目数 <= 1,则会引发索引错误的 bug。 (#340)
版本 0.10.0 (2017-12-22)
下载
新特性
- StackingCVRegressor 中
fit
的新参数store_train_meta_features
。如果为 True,则训练元特征存储在self.train_meta_features_
中。StackingCVRegressor 的新方法pred_meta_features
。人们可以使用此方法获取测试元特征。 (#294 via takashioya) StackingCVRegressor
的新属性store_train_meta_features
和方法pred_meta_features
也已添加到StackingRegressor
、StackingClassifier
和StackingCVClassifier
中 (#299 & #300)- 新增函数(
evaluate.mcnemar_tables
),用于从模型预测数组创建多个 2x2 列联表,可用于多个 McNemar (post-hoc) 检验或 Cochran's Q 或 F 检验等。 (#307) - 新增函数(
evaluate.cochrans_q
),用于执行 Cochran's Q 检验以比较多个分类器的准确性。 (#310)
变更
- 将
requirements.txt
添加到setup.py
。 (#304 via Colin Carrol)
错误修复
版本 0.9.1 (2017-11-19)
下载
新特性
- 添加了
mlxtend.evaluate.bootstrap_point632_score
,用于使用 .632 bootstrap 评估估算器的性能。 (#283) - 通过
apriori
函数生成频繁项集的新参数max_len
,允许提前停止。 (#270)
变更
SequentialFeatureSelector
中的所有特征索引元组现在都按排序顺序排列。 (#262)SequentialFeatureSelector
现在按照 Novovicova & Kittler (1994) 中描述的方式运行浮动包含/排除的延续。请注意,这在任何测试场景中都没有导致性能差异,但在某些边缘情况下可能导致更好的性能。 (#262)utils.Counter
现在接受一个 name 变量来帮助区分多个计数器,时间精度可以通过 'precision' kwarg 设置,新的属性 end_time 保存了最后一次迭代完成的时间。 (#278 via Mathew Savage)
错误修复
- 修复了使用 SciPy 1.0 时 McNemar 检验发生的弃用错误。 (#283)
版本 0.9.0 (2017-10-21)
下载
新特性
- 添加了
evaluate.permutation_test
,这是一个用于假设检验(或 A/B 测试)的置换检验,用于检验两个样本是否来自同一分布。换句话说,这是一个检验两个组是否没有显著差异(例如,治疗组和对照组)的零假设的过程。 (#250) - 将 `'leverage'` 和 `'conviction` 添加到
frequent_patterns.association_rules
函数作为评估指标。 (#246 & #247) - 向
PrincipalComponentAnalysis
添加了loadings_
属性,用于计算特征在主成分上的因子载荷。 (#251) - 允许在集成和堆叠估算器中对分类器/回归器进行网格搜索。 (#259)
- 新增
make_multiplexer_dataset
函数,用于创建由 n 位布尔多路复用器生成的数据集,以评估监督学习算法。 (#263) - 新增
BootstrapOutOfBag
类,是 out-of-bag bootstrap 的实现,用于评估监督学习算法。 (#265) StackingClassifier
、StackingCVClassifier
、StackingRegressor
、StackingCVRegressor
和EnsembleVoteClassifier
的参数现在可以使用 scikit-learn 的GridSearchCV
进行调优 (#254 via James Bourbeau)
变更
frequent_patterns.association_rules
返回的 `'support'` 列已更改为计算“先行项与后继项的并集”的支持度,并添加了新的antecedant support'
和 `'consequent support'` 列以避免歧义。 (#245)- 允许通过 scikit-learn 的
clone
函数克隆OnehotTransactions
,这对于例如 scikit-learn 的FeatureUnion
或GridSearchCV
是必需的(通过 Iaroslav Shcherbatyi)。 (#249)
错误修复
- 修复了
_IterativeModel
子类中self._init_time
参数的问题。 (#256) - 修复了在 Python 2.7 上运行
plot_ecdf
时发生的精度 bug。 (264) PrincipalComponentAnalysis
中来自 SVD 的向量现在已缩放,因此通过solver='eigen'
和solver='svd'
的特征值现在存储具有相同大小的特征值。 (#251)
版本 0.8.0 (2017-09-09)
下载
新特性
- 添加了
mlxtend.evaluate.bootstrap
,它实现了普通的非参数 bootstrap 来 bootstrap 单个统计量(例如,回归拟合的均值、中位数、R^2 等) #232 SequentialFeatureSelector
的k_features
现在接受字符串参数“best”或“parsimonious”以实现更“自动化”的特征选择。例如,如果提供“best”,特征选择器将返回具有最佳交叉验证性能的特征子集。如果提供“parsimonious”作为参数,将选择在交叉验证性能的一个标准误差内的最小特征子集。 #238
变更
SequentialFeatureSelector
现在使用np.nanmean
而不是正常均值来支持可能返回np.nan
的评分器 #211 (via mrkaiser)skip_if_stuck
参数已从SequentialFeatureSelector
中移除,取而代之的是更高效的实现,它比较了条件包含/排除结果(在浮动版本中)与先前缓存的采样特征集的性能 #237ExhaustiveFeatureSelector
已修改以显著减少内存消耗 #195 (via Adam Erickson)
错误修复
- 修复了
SequentialFeatureSelector
选择的特征子集大于通过k_features
元组最大值指定的子集的 bug #213
版本 0.7.0 (2017-06-22)
下载
新特性
- 新增 mlxtend.plotting.ecdf 函数,用于绘制经验累积分布函数 (#196)。
- 新增
StackingCVRegressor
,用于使用 out-of-fold 预测堆叠回归器以防止过拟合 (#201via Eike Dehling)。
变更
- TensorFlow 估算器已从 mlxtend 中移除,因为 TensorFlow 现在有非常方便的方式来构建估算器,这使得这些实现变得过时。
plot_decision_regions
现在支持绘制超过 2 个训练特征的决策区域 #189, via James Bourbeau)。mlxtend.feature_selection.SequentialFeatureSelector
和mlxtend.feature_selection.ExhaustiveFeatureSelector
中的并行执行现在在不同的特征子集上进行,而不是在不同的交叉验证折叠上进行,以便在特征数量很大时更好地利用具有多个处理器的机器 (#193, via @whalebot-helmsman)。- 如果在
StackingCVClassifer
中将 pandasDataFrame
s 或 Python 列表的列表作为fit
参数输入,则会引发有意义的错误消息 (198)。 StackingCVClassifier
的n_folds
参数已更改为cv
,现在可以接受 scikit-learn 中可用的任何交叉验证技术。例如,StackingCVClassifier(..., cv=StratifiedKFold(n_splits=3))
或StackingCVClassifier(..., cv=GroupKFold(n_splits=3))
(#203, via Konstantinos Paliouras)。
错误修复
SequentialFeatureSelector
现在正确接受scoring
参数的None
参数,以从 scikit-learn 分类器和回归器中推断默认评分指标 (#171)。plot_decision_regions
函数现在支持通过 matplotlib 的plt.subplots
生成的现有轴对象。 (#184,参见示例)- 使
math.num_combinations
和math.num_permutations
对于大量组合和排列具有数值稳定性 (#200)。
版本 0.6.0 (2017-03-18)
下载
新特性
- 实现了一个
association_rules
函数,该函数允许根据频繁项集列表生成规则(通过 Joshua Goerner)。
变更
- 通过
plotting.plot_decision_regions
为绘图添加了黑色edgecolor
,以便在matplotlib>=2.0
中使标记更容易与背景区分开来。 association
子模块已重命名为frequent_patterns
。
错误修复
apriori
结果的DataFrame
索引现在是唯一的且有序的。- 修复了 autompg 和 wine 数据集中的拼写错误(通过 James Bourbeau)。
版本 0.5.1 (2017-02-14)
下载
新特性
EnsembleVoteClassifier
新增了一个refit
属性,如果refit=False
,则防止重新拟合分类器以节省计算时间。- 在
evaluate
中添加了一个新的lift_score
函数来计算 lift 分数(通过 Batuhan Bardak)。 - 如果底层模型支持多元目标,
StackingClassifier
和StackingRegressor
也支持多元目标(通过 kernc)。 StackingClassifier
新增了一个像StackingCVClassifier
一样的use_features_in_secondary
属性。
变更
- 将
SequentialFeatureSelector
中的默认详细级别更改为 0 - 如果在调用
predict
之前没有fit
,EnsembleVoteClassifier
现在会引发NotFittedError
。(通过 Anton Loss) - 添加了新的 TensorFlow 变量初始化语法,以确保与 TensorFlow 1.0 兼容
错误修复
- 修复了
SequentialFeatureSelector
中k_features
的错误默认值 - 将
SequentialFeautureSelector
中选定的特征子集转换为集合,以防止如果k_idx
是同一组合的不同排列时迭代器卡住(通过 Zac Wellmer)。 - 修复了学习曲线的问题,该问题导致性能指标被颠倒(通过 ipashchenko)
- 修复了在浮动变体中存在性能相似的子集时,
SequentialFeatureSelector
中可能发生的错误(通过 Zac Wellmer)。
版本 0.5.0 (2016-11-09)
下载
新特性
mlxtend.feature_selection
中新增ExhaustiveFeatureSelector
估算器,用于评估指定范围内的所有特征组合StackingClassifier
新增参数average_probas
,默认为True
以保持当前行为。但新增了弃用警告,未来版本 (0.6.0) 中将默认为False
;average_probas=False
将导致堆叠级别 1 的预测概率,而不是平均这些概率。- “mlxtend.classifier”中新增
StackingCVClassifier
估算器,用于实现堆叠集成,该集成使用交叉验证技术训练元估算器以避免过拟合(Reiichiro Nakano) - 新增
OnehotTransactions
编码器类,添加到preprocessing
子模块,用于将交易数据转换为独热编码数组 mlxtend.feature_selection
中的SequentialFeatureSelector
估算器现在可以通过 control+c 安全地中止进程,并且弃用了print_progress
,转而使用更可调的verbose
参数(Will McGinnis)association
中新增apriori
函数,用于从交易数据中提取频繁项集以进行关联规则挖掘plotting
中新增checkerboard_plot
函数,用于绘制棋盘表格/热图evaluate
中新增mcnemar_table
和mcnemar
函数,用于计算 2x2 列联表和 McNemar 检验
变更
- 所有绘图函数已移至
mlxtend.plotting
,以便与持续集成服务兼容,并使matplotlib
对于mlxtend
核心功能的用户成为可选安装项 - 添加了
scikit-learn 0.18
的兼容层,使用新的model_selection
模块,同时保持对 scikit-learn 0.17 的向后兼容性。
错误修复
- 如果存在超过 4 个类别标签,
mlxtend.plotting.plot_decision_regions
现在可以正确绘制决策区域 - 当
X_higlight
参数是 1D 数组时,在plot_decision_regions
中引发AttributeError
(chkoar)
版本 0.4.2 (2016-08-24)
下载
新特性
- 新增
preprocessing.CopyTransformer
,一个通过transform
和fit_transform
返回输入数组副本的模拟类
变更
- CI 中添加了 AppVeyor,以确保 MS Windows 兼容性
- 数据集现在保存为压缩的 .txt 或 .csv 文件,而不是导入为 Python 对象
feature_selection.SequentialFeatureSelector
现在支持使用元组指定“最小-最大”k_features
范围来选择k_features
- 向
PrincipalComponentAnalysis
添加了“SVD 求解器”选项 - 如果在调用
fit
之前调用了transform
或get_metric_dict
,则在SequentialFeatureSelector
中引发带有“not fitted”消息的AttributeError
- 如果在
TfMultiLayerPerceptron
的隐藏层中激活函数是 ReLU,则使用小的正偏置单元,以避免死神经元 - 向
SequentialFeatureSelector
添加了一个可选的clone_estimator
参数,默认为True
,以避免修改原始估算器对象 - 在
evaluate.plot_decision_regions
函数中进行了更严格的类型和形状检查 - 如果输入数组*不是*稀疏的,
DenseTransformer
现在不会引发错误 - 使用 scikit-learn 的
BaseEstimator
作为feature_selection.ColumnSelector
的父类进行 API 清理
错误修复
- 修复了当为
SequentialFeatureSelector
的k_features
参数提供元组范围且评分指标小于 -1(例如 scikit-learn 的 MSE 评分函数)时出现的问题(wahutch) - 修复了在
StackingClassifier
中verbose
> 1 时发生的AttributeError
问题 - 修复了
classifier.SoftmaxRegression
中的一个 bug,该 bug 使用了偏移量的平均值而不是它们的总和来更新偏置单元 - 修复了 MLP
_layer_mapping
函数中一个罕见的 bug,该 bug 导致在初始化权重和偏置时交换了随机数生成种子
版本 0.4.1 (2016-05-01)
下载
新特性
- 新增 TensorFlow 线性回归估算器(
tf_regressor.TfLinearRegression
) - 新增 k 均值聚类估算器(
cluster.Kmeans
) - 新增 TensorFlow k 均值聚类估算器(
tf_cluster.Kmeans
)
变更
- 由于估算器类的重构,
fit
方法的init_weights
参数已全局重命名为init_params
- 由于代码清理和重构,估算器的整体性能有所提升
- 添加了额外的几种检查以验证正确的数组类型,并提供更有意义的异常消息
- 为
tf_classifier.TfMultiLayerPerceptron
分类器添加了可选的dropout
以进行正则化 - 为
tf_classifier.TfMultiLayerPerceptron
分类器添加了可选的decay
参数,用于通过学习率 eta 的指数衰减实现自适应学习 - 用更简化的
MultiLayerPerceptron
(classifier.MultiLayerPerceptron
)替换了旧的NeuralNetMLP
;现在输出层也带有 softmax 和分类交叉熵损失。 - 统一了 fit 函数的
init_params
参数,以便在算法停止的地方继续训练(如果支持)
版本 0.4.0 (2016-04-09)
新特性
- 使用 Tensorflow 的新
TfSoftmaxRegression
分类器(tf_classifier.TfSoftmaxRegression
) - 新增
SoftmaxRegression
分类器(classifier.SoftmaxRegression
) - 使用 Tensorflow 的新
TfMultiLayerPerceptron
分类器(tf_classifier.TfMultiLayerPerceptron
) - 新增
StackingRegressor
(regressor.StackingRegressor
) - 新增
StackingClassifier
(classifier.StackingClassifier
) - 新增类别标签独热编码函数 (
preprocessing.one_hot
) - 为
SequentialFeatureSelector
添加了GridSearch
支持 (feature_selection/.SequentialFeatureSelector
) evaluate.plot_decision_regions
改进- 如果数组类型为
float
,函数现在能正确处理类别 y 标签 - 正确处理输入参数
markers
和colors
- 通过
ax
参数接受现有的Axes
- 如果数组类型为
- 所有泛化模型和多层神经网络新增
print_progress
参数,用于打印经过时间、预计完成时间 (ETA) 和当前 epoch 的当前成本 classifier.LogisticRegression
、classifier.Adaline
和regressor.LinearRegression
的小批量学习以及简化的 API- 通过
mlxtend.feature_extraction.PrincipalComponentAnalysis
新增主成分分析类 - 通过
mlxtend.feature_extraction.RBFKernelPCA
新增 RBF 核主成分分析类 - 通过
mlxtend.feature_extraction.LinearDiscriminantAnalysis
新增线性判别分析类
变更
mlxtend.preprocessing.standardize
中的column
参数现在默认为None
,以便更方便地标准化所有列
版本 0.3.0 (2016-01-31)
下载
新特性
- 为
classifier.NeuralNetMLP
添加了进度条跟踪器 - 添加了一个函数来对预测与目标类别标签进行评分
evaluate.scoring
- 添加了混淆矩阵函数来创建(
evaluate.confusion_matrix
)和绘制(evaluate.plot_confusion_matrix
)混淆矩阵 mlxtend.evaluate.plot_learning_curves
中新增样式参数和改进的轴缩放- 向
mlxtend.data
添加了loadlocal_mnist
,用于将本地字节文件中的 MNIST 流式传输到 numpy 数组中 - 新增
NeuralNetMLP
参数:random_weights
,shuffle_init
,shuffle_epoch
- 新增
SFS
功能,例如生成 pandasDataFrame
结果表和绘图函数(带有置信区间、标准差和标准误差条) - 在
SFS
中添加了对回归估算器的支持 - 新增波士顿
housing dataset
- 新增
classifier.NeuralNetMLP
的shuffle
参数
变更
mlxtend.preprocessing.standardize
函数现在可选地返回从数组估计的参数,以便重用。进一步的改进使得standardize
函数更智能,以避免零除错误evaluate.plot_decision_regions
函数的美学改进,例如隐藏绘图轴- 将
classifier.EnsembleClassfier
重命名为classifier.EnsembleVoteClassifier
- 改进了
Perceptron
、Adaline
、LinearRegression
和LogisticRegression
中的随机权重初始化 - 将
mlxtend.classifier.Adaline
的learning
参数更改为solver
,并添加了“正规方程”作为封闭形式解求解器 - 在 1 维评估中,隐藏
mlxtend.evaluate.plot_decision_regions
中的 y 轴标签 - 序贯特征选择算法已统一为一个单独的
SequentialFeatureSelector
类,带有参数以启用浮动选择并在前向选择和后向选择之间切换。 - MNIST 的分层抽样(现在从 10 个数字类别中抽取 500 个随机样本)
- 将
mlxtend.plotting
重命名为mlxtend.general_plotting
,以区分通用绘图函数和专业效用函数(例如evaluate.plot_decision_regions
)
版本 0.2.9 (2015-07-14)
下载
新特性
- 序贯特征选择算法:SFS、SFFS、SBS 和 SFBS
变更
- 将
LogisticRegression
中的regularization
和lambda
参数更改为单个参数l2_lambda
版本 0.2.8 (2015-06-27)
- API 更改
mlxtend.sklearn.EnsembleClassifier
->mlxtend.classifier.EnsembleClassifier
mlxtend.sklearn.ColumnSelector
->mlxtend.feature_selection.ColumnSelector
mlxtend.sklearn.DenseTransformer
->mlxtend.preprocessing.DenseTransformer
mlxtend.pandas.standardizing
->mlxtend.preprocessing.standardizing
mlxtend.pandas.minmax_scaling
->mlxtend.preprocessing.minmax_scaling
mlxtend.matplotlib
->mlxtend.plotting
- 为
mlxtend.classifier.NeuralNetMLP
添加了动量学习参数(alpha 系数)。 - 为
mlxtend.classifier.NeuralNetMLP
添加了自适应学习率(递减常数)。 mlxtend.pandas.minmax_scaling
更名为mlxtend.preprocessing.minmax_scaling
,现在也支持 NumPy 数组mlxtend.pandas.standardizing
更名为mlxtend.preprocessing.standardizing
,现在支持 NumPy 数组和 pandas DataFrame;此外,现在可以使用ddof
参数来设置计算标准差时的自由度
版本 0.2.7 (2015-06-20)
- 新增多层感知机(前馈人工神经网络)分类器为
mlxtend.classifier.NeuralNetMLP
。 - 向
mlxtend.data
添加了来自 MNIST 手写数字数据集的 5000 个带标签的训练样本
版本 0.2.6 (2015-05-08)
- 新增使用不同求解器(梯度下降、随机梯度下降和封闭形式解(正规方程))的普通最小二乘回归
- 为逻辑回归分类器添加了随机权重初始化选项,并更新了 l2 正则化
- 向
mlxtend.data
添加了wine
数据集 - 向
mlxtend.matplotlib.enrichtment_plot
添加了invert_axes
参数,以便可选地在 x 轴上绘制“Count” - 由 Alejandro C. Bahnsen 为
mlxtend.sklearn.EnsembleClassifier
新增verbose
参数 - 新增
mlxtend.pandas.standardizing
,用于标准化 Pandas DataFrame 中的列 - 向
mlxtend.matplotlib.enrichment_plot
添加了参数linestyles
和markers
mlxtend.regression.lin_regplot
自动添加 np.newaxis 并支持 python 列表- 新增分词器:
mlxtend.text.extract_emoticons
和mlxtend.text.extract_words_and_emoticons
版本 0.2.5 (2015-04-17)
- 新增序贯后向选择(mlxtend.sklearn.SBS)
- 向
mlxtend.evaluate.plot_decision_regions
添加了X_highlight
参数,用于高亮显示测试数据点。 - 添加了 mlxtend.regression.lin_regplot,用于绘制线性回归拟合的直线。
- 添加了 mlxtend.matplotlib.stacked_barplot,用于方便地使用 pandas
DataFrame
生成堆叠条形图。 - 新增 mlxtend.matplotlib.enrichment_plot
版本 0.2.4 (2015-03-15)
- 向
mlxtend.evaluate.learning_curves
添加了scoring
(由用户 pfsq 提供) - 修复了由缺少 README.html 文件引起的 setup.py 错误
- 用于 pandas DataFrames 和 Numpy 数组的 matplotlib.category_scatter
版本 0.2.3 (2015-03-11)
- 新增逻辑回归
- 梯度下降和随机梯度下降感知器已更改为 Adaline(自适应线性神经元)
- Perceptron 和 Adaline 用于 {0, 1} 类别
- 新增
mlxtend.preprocessing.shuffle_arrays_unison
函数,用于统一打乱一个或多个 NumPy 数组。 - 为随机梯度下降分类器添加了 shuffle 和随机种子参数。
- 为
mlxtend.file_io.find_filegroups
添加了rstrip
参数,以允许修剪基本名称。 - 向
mlxtend.file_io.find_filegroups
和find_files
添加了ignore_substring
参数。 - 使用更强大的 regex 替换了
mlxtend.file_io.find_filegroups
中的 .rstrip。 mlxtend.sklearn.EnsembleClassifier
的网格搜索支持
版本 0.2.2 (2015-03-01)
- 改进了 EnsembleClassifier 的鲁棒性。
- 扩展了 plot_decision_regions() 功能,用于绘制 1D 决策边界。
- 函数 matplotlib.plot_decision_regions 已重组为 evaluate.plot_decision_regions。
- evaluate.plot_learning_curves() 函数已添加。
- 新增了 Rosenblatt、梯度下降和随机梯度下降感知器。
版本 0.2.1 (2015-01-20)
- 新增 mlxtend.pandas.minmax_scaling - 一个用于重新缩放 pandas DataFrame 列的函数。
- EnsembleClassifier 接口的微小更新(新增
voting
参数) - 修复了 EnsembleClassifier 在类别标签不是从 0 到 n 的整数时无法返回正确类别标签的 bug。
- 新增 matplotlib 函数,用于绘制分类器的决策区域。
版本 0.2.0 (2015-01-13)
- 改进了 mlxtend.text.generalize_duplcheck,以删除重复项并防止无限循环问题。
- 为 mlxtend.file_io.find_files 添加了
recursive
搜索参数。 - 为 mlxtend.file_io.find_files 添加了
check_ext
参数,以基于文件扩展名进行搜索。 - mlxtend.file_io.find 的默认参数是忽略不可见文件。
- 为
EnsembleClassifier
添加了transform
和fit_transform
。 - 新增 mlxtend.file_io.find_filegroups 函数。
版本 0.1.9 (2015-01-10)
- 实现了 scikit-learn EnsembleClassifier(多数投票规则)类。
版本 0.1.8 (2015-01-07)
- 改进了 mlxtend.text.generalize_names,以处理某些荷兰姓氏前缀(van, van der, de 等)。
- 新增 mlxtend.text.generalize_name_duplcheck 函数,用于将 mlxtend.text.generalize_names 函数应用于 pandas DataFrame,而不创建重复项。
版本 0.1.7 (2015-01-07)
- 新增文本工具,包含名称泛化功能。
- 新增文件 I/O 工具。
版本 0.1.6 (2015-01-04)
- 新增组合和排列估算器。
版本 0.1.5 (2014-12-11)
- 新增
DenseTransformer
,用于管道和网格搜索。
版本 0.1.4 (2014-08-20)
mean_centering
函数现在是一个类,它创建MeanCenterer
对象,这些对象可以通过fit
方法拟合数据,并通过transform
和fit_transform
方法将数据中心化到列均值。
版本 0.1.3 (2014-08-19)
- 新增
preprocessing
模块和mean_centering
函数。
版本 0.1.2 (2014-08-19)
- 新增
matplotlib
工具和remove_borders
函数。
版本 0.1.1 (2014-08-13)
- 简化了 ColumnSelector 的代码。