python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python mlxtend数据科学机器学习

Python mlxtend库数据科学和机器学习补充工具功能探索

作者:小寒聊python

这篇文章主要介绍了Python mlxtend库数据科学和机器学习补充工具功能探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python库mlxtend

今天我们来分享一个超强的 python 库,mlxtend

https://github.com/rasbt/mlxtend

mlxtend(Machine Learning Extensions)是一个流行的 Python 库,其中包含「用于数据科学和机器学习任务」的有用工具。它不是替代像 scikit-learn 这样的主流机器学习库,而是作为补充,提供一些在这些库中不常见的功能和工具。

功能及特点

库的安装

直接使用 pip 进行安装。

pip install mlxtend  

特征选择

包装方法是为「特征选择」而设计的算法。他们通过评估机器学习模型的性能来评估不同特征子集的重要性。这些方法迭代地添加或删除特征,根据模型的性能来衡量其实用性。

包装方法主要包括顺序前向选择、顺序向后选择、顺序向前浮动选择、顺序向后浮动选择和递归特征消除。

在本文中,我们主要介绍顺序前向选择。顺序前向选择(SFS)是一种用于机器学习中特征选择的包装方法。它从没有特征开始,然后逐渐添加它们以构建最佳子集。

SFS流程

初始步骤:分别使用每个特征训练和测试模型,选择产生最佳性能的特征。

迭代添加:在后续步骤中,算法测试向现有子集添加的每个可能的新特征。添加最能提高模型性能的特征。

停止标准:此过程持续进行,直到达到所需的特征数量。

案例分享

这里,我们使用 scikit-learn 提供的鸢尾花数据集。

加载数据集

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from mlxtend.feature_selection import SequentialFeatureSelector as SFS

iris = load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

应用顺序前向选择(SFS)

sfs = SFS(LogisticRegression(),
          k_features='best',
          forward=True,
          floating=False,
          scoring='accuracy',
          cv=5)
sfs = sfs.fit(X_train_scaled, y_train)

绘制模型准确率

import matplotlib.pyplot as plt
from mlxtend.plotting import plot_sequential_feature_selection as plot_sfs

# 打印选择的特征
print(sfs.subsets_[3]['feature_names'])
# 输出准确率
print(sfs.subsets_[3]['avg_score'])
#('0', '2', '3')
#0.9523809523809523
# 绘制模型准确率
plot_sfs(sfs.get_metric_dict( )) 
plt.show()

以上就是Python mlxtend库数据科学和机器学习补充工具功能探索的详细内容,更多关于Python mlxtend数据科学机器学习的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文