机器学习好伙伴之scikit-learn的使用——特征提取

2023-10-29

有些时候特征太多了,可以利用sklearn中自带的函数进行特征提取噢
在这里插入图片描述

什么是特征提取

在进行机器学习的实验里,但并不是所有的维度都是有用的,如果能将对实验结果影响较大的有用维度提取出来,去除掉无用维度,那么既可以提高预测的精度、也可以加快模型的预测时间。
PCA(主成分分析)与LDA(线性评价分析)是特征提取的两种经典算法。
本质上两个特征提取方法都是学习一个投影矩阵,从而使样本在新的坐标系上的表示具有相应的特性。

sklearn中特征提取的实现

PCA(主成分分析)

该方法通过调用如下函数实现。

import sklearn.decomposition as sk_decomposition
sk_decomposition.PCA()

其主要使用的参数为:
1、n_components:当输入大于1时,代表降维后的特征量;当输入大于0小于1时,代表主成分的方差和所占的最小阈值;’mle’代表使用MLE算法根据特征的方差分布情况去选择主成分特征进行降维。
2、whiten: 判断是否需要将降维后的数据的每个特征进行归一化,让方差都为1。
3、svd_solver:奇异值分解SVD的方法,输入为以下四个之一{‘auto’, ‘full’, ‘arpack’, ‘randomized’}。

应用方式如下:

pca = sk_decomposition.PCA(n_components=2,whiten=False,svd_solver='auto')
pca.fit(data_X)

LDA(线性评价分析)

该方法通过调用如下函数实现。

import sklearn.discriminant_analysis as sk_discriminant_analysis
sk_discriminant_analysis.LinearDiscriminantAnalysis()

其主要使用的参数为:
1、n_components:代表降维后的特征量。
2、svd_solver:奇异值分解SVD的方法,输入为以下四个之一{‘auto’, ‘full’, ‘arpack’, ‘randomized’}。

应用方式如下:

lda = sk_discriminant_analysis.LinearDiscriminantAnalysis(n_components=2)

应用示例

PCA部分

import sklearn.decomposition as sk_decomposition
from sklearn import datasets

loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_Y = loaded_data.target
pca = sk_decomposition.PCA(n_components=2,whiten=False,svd_solver='auto')

pca.fit(data_X)
#PCA_X为降维后的数据
PCA_X = pca.transform(data_X) 
print ('各个主成分方差比例',pca.explained_variance_ratio_)
print ('各个主成分方差值',pca.explained_variance_)
print ('降维后的特征数量',pca.n_components_)

实验结果为:

各个主成分方差比例 [0.80582318 0.16305197]
各个主成分方差值 [30889.91126082  6250.3300614 ]
降维后的特征数量 2

LDA部分

import sklearn.discriminant_analysis as sk_discriminant_analysis
from sklearn.model_selection import train_test_split
from sklearn import datasets

loaded_data = datasets.load_iris()
data_X = loaded_data.data
data_Y = loaded_data.target
X_train, X_test, y_train, y_test = train_test_split(data_X, data_Y, test_size=0.3)

# 生成lda降维的结构
lda = sk_discriminant_analysis.LinearDiscriminantAnalysis(n_components=2)
lda.fit(data_X,data_Y)

#lda_X为降维后的数据
lda_X = lda.transform(data_X) 

#中心点
print ('LDA的中心点:',lda.means_) 
#score是指分类的正确率
print ('LDA后,预测的正确率:',lda.score(X_test, y_test)) 
#降维后特征空间的类中心
print ('LDA后,特征空间的类中心:',lda.scalings_) 

实验结果为:

LDA的中心点: [[5.006 3.428 1.462 0.246]
			  [5.936 2.77  4.26  1.326]
 			  [6.588 2.974 5.552 2.026]]
LDA后,预测的正确率: 0.9777777777777777
LDA后,特征空间的类中心: [[ 0.82937764  0.02410215]
						[ 1.53447307  2.16452123]
						[-2.20121166 -0.93192121]
						[-2.81046031  2.83918785]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习好伙伴之scikit-learn的使用——特征提取 的相关文章

随机推荐

  • 手把手教你用 Keras 实现 LSTM 预测英语单词发音

    1 动机 我近期在研究一个 NLP 项目 根据项目的要求 需要能够通过设计算法和模型处理单词的音节 Syllables 并对那些没有在词典中出现的单词找到其在词典中对应的押韵词 注 这类单词类似一些少见的专有名词或者通过组合产生的新词 比如
  • Postman导出接口

    导出的文件
  • Enterprise Architect(EA)画UML之用例图,敲详细讲解+实战举例

    目录 具体步骤 前提准备 实战画用例图 实战加一 绘制 机票预订系统 用例图 补充 补充一 如何调整整体字体 补充二 如何修改边框字体 补充三 在关闭Enterprise Architect之后如何打开 在 UML面向对象分析 建模与设计
  • ReactNative 学习笔记

    学习使用的开发工具 编译器 VSCode 开发语言工具 TypeScript 重要程度分类 一般 这个程度的知识点主要是达到熟练掌握即可 不用太深入研究和学习 重要 这个程度的知识点主要是达到熟练掌握 并且内部的原理切要熟记 因为会关联到其
  • 【大数问题】字符串相减(大数相减)<模拟>

    类似 力扣 415 字符串相加 大数相加 实现大数相减 题解 模拟相减的过程 先一直使大数减小数 记录借位 最后再判断是否加负号 中间需要删除前导0 例如10001 10000 00001 import java util public c
  • java byte格式_Java——详解java中的byte类型

    Java也提供了一个byte数据类型 并且是基本类型 java byte是做为最小的数字来处理的 因此它的值域被定义为 128 127 也就是signed byte 下面这篇文章主要给大家介绍了关于java中byte类型的相关资料 需要的朋
  • 基于粒子群算法(PSO)优化径向基神经网络(PSO-RBF)的数据回归预测,多变量输入模型。matlab代码,优化参数为扩散速度,采用交叉验证。评价指标包括:R2、MAE、MSE、RMSE和M

    clc clear all close all tic warning off 导入数据 训练集 190个样本 P train xlsread data training set B2 G191 T train xlsread data t
  • 解决Antd Tree组件,二次点击时不取消选中,保持高亮

    一 问题概述 ant design 提供的 Tree树组件 支持点击高亮树节点 再次点击取消高亮 默认效果如下 然而大多数业务场景下 我们希望多次点击同一个节点不会取消他的选中效果 二 解决方案 监听onSelect时间 并使用select
  • BUG解决Button类不能从UnityEngine.UI中引用

    Button does not contain a definition for onClick and no accessible extension method onClick accepting a first argument o
  • mysql 分表插入,mysql实现插入数据到分表

    创建原始数据表 DROP TABLE IF EXISTS articleinfo CREATE TABLE articleinfo id BIGINT UNSIGNED NOT NULL AUTO INCREMENT PRIMARY KEY
  • suse11/12下关闭防火墙

    service SuSEfirewall2 init stop chkconfig SuSEfirewall2 init off 启动操作为 service SuSEfirewall2 setup start service SuSEfir
  • 通过java解析域名获得IP地址

    IP地址是Internet主机的作为路由寻址用的数字型标识 人不容易记忆 因而产生了域名 domain name 这一种字符型标识 DNS即为域名解析服务 在这里我们如果想通过java程序来解析域名获得真实IP的话 可以通过java的Ine
  • C语言指针高级篇

    相信很多人都听过指针是c语言的灵魂 对于指针的学习 往往也是最难的 也是最难搞懂的 那么今天我们一起来学习分析c语言的指针 体会c语言的魅力 指针和指针应用大概分为一下几类 1 字符指针 2 数组指针 3 指针数组 4 数组传参和指针传参
  • Node.js笔记-day04

    18 Node js 回调函数 Node js 异步编程的直接体现就是回调 异步编程依托于回调来实现 但不能说使用了回调后程序就异步化了 回调函数在完成任务后就会被调用 Node 使用了大量的回调函数 Node 所有 API 都支持回调函数
  • Linux关于文件或者目录的常见命令

    1 查看当前所在目录 print working directory 该命令的基本格式为 root localhost pwd 2 查看指定目录下所有的子目录或者文件列表 list 该命令的基本格式为 root localhost ls 选
  • Axios(万字详细教程)

    Axios介绍 1 Axios是什么 Axios是一个基于promise的HTTP库 类似于jQuery的ajax 用于http请求 可以应用于浏览器端和node js 既可以用于客户端 也可以用于node js编写的服务端 2 Axios
  • idea项目无法打包

    打包过程 点击maven 点击lifecycle后点击package 运行后出现 打包出错 原因是plugins标签里面缺少maven resources plugin依赖 需要在pom xml里面添加依赖
  • Zimg—轻量级图片服务器搭建利器

    在一个互联网应用中 图片扮演着越来越重要的角色 有稳定的可扩展的图片存储服务器就显得尤为的重要 云厂商们提供了便利的图片存储服务 花钱就可以解决了 这里简单介绍一个开源的一个分布式图片存储服务器 zimg 来自己搭建一个图片服务器 当然你也
  • 2022阿里巴巴全球数学竞赛 第4题 虎虎生威(盲盒问题、集卡问题)解决思路

    目录 题目 基础概念 数学期望 题解 虎生威 问题 水浒传108卡 问题 虎虎生威 问题 题目 来自 2022阿里巴巴全球数学竞赛 第4题 单选题 基础概念 数学期望 在概率论和统计学中 数学期望 mathematic expectatio
  • 机器学习好伙伴之scikit-learn的使用——特征提取

    机器学习好伙伴之scikit learn的使用 特征提取 什么是特征提取 sklearn中特征提取的实现 PCA 主成分分析 LDA 线性评价分析 应用示例 PCA部分 LDA部分 有些时候特征太多了 可以利用sklearn中自带的函数进行