量化特征贡献度函数:feature_importances_函数/LGBMClassifier/XGBClassifier

feature_importances_是scikit-learn机器学习库中许多模型对象的属性,在训练模型之后调用该属性可以输出各个特征在模型中的重要性。

示例代码:

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression

# 生成一个示例数据集
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)

# 训练一个随机森林回归模型
rf = RandomForestRegressor(n_estimators=100, random_state=0)
rf.fit(X, y)

# 输出特征的重要性
print(rf.feature_importances_)

在上述代码中,我们训练了一个随机森林回归模型,并使用feature_importances_输出了各个特征的重要性。输出结果为:[0.08519548, 0.39799048, 0.40214713, 0.11466691],即第2个特征和第3个特征在模型中较为重要,而第1个和第4个特征的重要性相对较低。

通过观察特征的重要性分布情况,我们可以了解到哪些特征在模型预测中有更高的权重,从而可以进行模型的优化和特征的筛选。

LGBMClassifier

LGBMClassifier是一种基于决策树的集成型机器学习算法,它采用了基于梯度提升树(Gradient Boosting Decision Tree)的模型框架,并具有高效、灵活、精度高的特点。由于算法的高效性,LGBMClassifier逐渐成为机器学习领域中的常用算法。

LGBMClassifier的主要优势:

  1. 高效:相对其它基于梯度提升树的算法,LGBMClassifier 显著提高了运行速度。

  2. 精度高:LGBMClassifier 在大数据集上的训练精度能够与同类别的算法相比较。

  3. 支持并行化:LGBMClassifier 支持类似多线程的并行化处理,这可以大大提升训练效率。

  4. 可定制度高:LGBMClassifier 与其他集成的决策树模型一样,能够支持很多的调整方法。

示例代码:

from lightgbm import LGBMClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

# 训练 LGBMClassifier 模型
model = LGBMClassifier()
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 输出模型的准确率
acc = model.score(X_test, y_test)
print("Accuracy is : ", acc)

在上述代码中,示例数据集使用了鸢尾花数据集,将其分成了训练集和测试集,使用LGBMClassifier训练模型并在测试集上进行预测,在测试集上输出了模型的准确率。

XGBClassifier

XGBClassifier是一种基于梯度提升决策树算法的分类器模型,它使用了XGBoost库作为基础实现。XGBClassifier具有高效率、准确性和鲁棒性的优点,在数据科学和机器学习中应用广泛。

在使用XGBClassifier进行分类时,需要先进行数据清洗、特征工程和数据准备。然后,通过调用XGBClassifier实例,并设置参数来创建分类器模型。下面是一些常用的参数设置:

– learning_rate:学习率,控制每次迭代的步长,默认为0.1。

– n_estimators:决策树的个数,即迭代次数,默认为100。

– max_depth:最大树深度,控制模型的复杂度,默认为6。

– subsample:随机采样比例,用于训练每个决策树的子样本比例,默认为1。

– colsample_bytree:列采样比例,用于训练每个决策树的特征子集比例,默认为1。

– objective:损失函数,用于评估分类器的性能,默认为“binary:logistic”,用于二分类问题。

– random_state:随机种子,用于确保模型的可重复性。

创建模型后,可以使用fit()方法拟合数据进行模型训练。训练完成后,可以使用predict()方法进行预测,并使用score()方法计算模型在测试集上的准确度。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年8月17日
下一篇 2023年8月17日

相关推荐