获取各岩石类型特征相对重要性并实现排序压缩特征输出的技术问询
岩石类型特征重要性分析实现方案
我帮你把这段逻辑梳理并完善了,确保能清晰输出每种岩石类型对应的特征重要性排序结果:
完整实现代码
# 定义所有测井特征名称(请补全你未写完的剩余特征) attributes_all = [ "Depth", "Neutron Porosity", "Caliper", "Density Porosity", "Gamma Ray", "Photoelectric", "Bulk Density", "Density Correction", "Resistivity (Deep)", "Resistivity (Medium)" # 在这里补充其他特征名称 ] # 遍历每种岩石类型的训练标签和对应名称 for y_train_all, y_strings_all in zip(y_trains_classes, y_classes_names): # 训练模型并获取最佳估计器的特征重要性 grid_for.fit(X_train, y_train_all) feature_importances = grid_for.best_estimator_.feature_importances_ # 将特征名称与重要性值配对,便于排序和展示 feature_with_importance = list(zip(attributes_all, feature_importances)) # 按特征重要性从高到低排序 sorted_feature_list = sorted(feature_with_importance, key=lambda item: item[1], reverse=True) # 格式化输出当前岩石类型的特征重要性结果 print(f"=== 岩石类型: *{y_strings_all}* 特征重要性排序 ===") for feature_name, importance_value in sorted_feature_list: # 保留4位小数,让输出更规整 print(f"- {feature_name}: `{importance_value:.4f}`") print("\n") # 不同岩石类型结果之间添加空行分隔
关键优化说明
- 规整了
attributes_all的列表结构,你只需要把剩余的特征名称补充进去即可; - 通过
zip函数将特征名称和对应的重要性值绑定,彻底解决特征与重要性的对应问题; - 使用
sorted函数结合lambda表达式实现按重要性降序排序,确保最关键的特征排在最前面; - 用轻量化的格式优化(加粗岩石类型、代码块包裹重要性值)让输出更易读,同时每种岩石类型的结果之间用空行分隔,避免内容拥挤;
- 控制重要性值保留4位小数,避免过长的小数影响可读性。
内容的提问来源于stack exchange,提问作者SMAmir
相关产品推荐
相关产品推荐

