当前位置: 首页 > news >正文

AI人工智能之机器学习sklearn特征选择

1、概要

  本篇学习AI人工智能之机器学习sklearn特征选择,以iris数据集为示例,从代码层面讲述如何进行特征选择。

2、特征选择 - 简介

特征选择,是一个重要的预处理步骤,它可以提高模型的效率和效果。然而,选择正确的特征和正确的评分函数需要仔细考虑数据的特点和模型的目标。

SelectKBest 是 scikit-learn 库中的一个特征选择方法。使用 SelectKBest 的好处包括:

  • 减少了模型的复杂性,可能提高了模型的解释性。
  • 减少了模型训练的时间,因为特征数量减少了。
  • 有时可以提高模型的预测性能,尤其是当原始特征集合中包含许多不相关或冗余特征时。

3、特征选择 - SelectKBest

3.1、安装依赖

python安装机器学习库: pip install scikit-learn

3.2、引入数据集和划分数据集
# 引入下特征选择库 SelectKBest
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载示例数据
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.25, random_state=42)
3.3、创建SelectKBest对象进行特征选择和评估

SelectKBest函数的一些重要参数:

  • score_func: 评分函数,用于评估特征的重要性。它应该接受特征矩阵和目标向量作为输入,并返回一个评分数组。
    • scikit-learn 提供了多种评分函数,例如 f_classif(用于分类的ANOVA F-value),chi2(用于分类的卡方测试),f_regression(用于回归的F-value)等。
  • k: 要选择的特征数量。如果 k 是一个整数,那么会选择评分最高的 k 个特征。如果 k 是一个浮点数,并且介于 0 和 1 之间,那么会选择所有评分在顶部 k * 总特征数 的特征。
  • p: 可以指定为选择特征的最小分数。如果指定,SelectKBest 会选择所有评分高于或等于 p 的特征。
# 创建SelectKBest对象,选择F-value评分函数,并选择顶部的2个特征
selector = SelectKBest(score_func=f_classif, k=2)

# 对特征进行选择, 新特征 现在只包含原始数据中最重要的2个特征
X_train_new = selector.fit_transform(X_train, y_train)
X_test_new = selector.transform(X_test)

# 初始化模型并训练
model = LogisticRegression(max_iter=200)
model.fit(X_train_new, y_train)

# 预测和评估
y_pred = model.predict(X_test_new)
accuracy = accuracy_score(y_test, y_pred)

# 输出特征选择后的准确率
print("特征选择后的准确率:", accuracy)

运行上述代码,您将得到如下输出:

特征选择后的准确率: 1.0

4、 总结

本篇以iris数据集为为例,从代码视角讲述如何使用AI机器学习中特征选择工具。

相关文章:

  • [原创](Modern C++)现代C++的关键性概念: 流迭代器std::istream_iterator的优秀用法
  • 树(比赛用)
  • LeetCode 2502.设计内存分配器:暴力模拟
  • 【新算法】基于Transformer-LSTM-Adaboost的多输入单输出回归预测模型【MATLAB】
  • 解决Value of type ‘AVCodecContext‘ has no member ‘channels‘ 的问题
  • Mac编译ffmpeg源码并集成到iOS App
  • QT C++ QtConcurrent::run 异步任务 简单例子
  • 显式指定 ChromeDriver 路径
  • 归并排序:分而治之的排序之道
  • 关于JavaWeb中的组件-------Servlet
  • 企业业务安全进阶之路:AI技术与数据分析的应用
  • 解析Excel表表头
  • 淘宝/天猫获得淘宝商品快递费用 API 返回值说明
  • 2.25作业
  • 滑动验证组件-微信小程序
  • level2Day5
  • Postgresql-重置统计信息(reset statistics)
  • 二分查找理解
  • 数据挖掘中特征发现与特征提取的数学原理
  • 30 分钟从零开始入门 CSS
  • 网站网站制作网站/互联网推广话术
  • 泸州网站建设兼职/我为什么不建议年轻人做运营
  • 营销策划方案ppt/北海百度seo
  • 网站结构优化建议/百度模拟点击软件判刑了
  • 日本广告巨头遭突击搜查/湘潭seo公司
  • wordpress 设成中文版/seo优化效果