人工智能学习5(特征抽取)

这篇具有很好参考价值的文章主要介绍了人工智能学习5(特征抽取)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译环境:PyCharm

特征抽取

特征选择和特征抽取都减少了数据的维度(降维),但是特征选择是得到原有特征的子集,特征抽取是将原有特征结果函数映射转化为新的特征。
特征抽取分为无监督特征抽取和有监督特征抽取。

无监督特征抽取(之PCA)

无监督没有标签
PCA降维(主成分分析)基本思想:构造一系列原始特征的线性组合形成的线性无关低维特征,以去除数据的相关性,并使降维后的数据最大程度保持原始高维数据的方差信息
去中心化处理:x-x的平均值
去中心化后,样本均值在0
均值:描述样本集合的中心点
标准差:各个样本到均值处的平均距离
标准差可以用来描述数据的散布程度
方差:标准差的平方
标准差和方差只能描述一维数据
协方差是两个变量之间的线性相关程度的度量(协方差为0表示两个变量没有相关性,为正数则正相关)
协方差矩阵可以用来描述多维数据的线性相关性。

人工智能学习5(特征抽取),人工智能,人工智能,学习,python
人工智能学习5(特征抽取),人工智能,人工智能,学习,python
cov(x,y)=cov(y,x)
var(x)=cov(x,x)
人工智能学习5(特征抽取),人工智能,人工智能,学习,python
可以看出协方差矩阵是对称的,对角线为方差。
人工智能学习5(特征抽取),人工智能,人工智能,学习,python
同一个向量在不同基底的变换,选择不同的及可以对同样一组数据给出不同的表示。
人工智能学习5(特征抽取),人工智能,人工智能,学习,python

要尽可能保留原有信息,要求投影后的值尽可能分散,不重合。

代码实现鸢尾花数据集无监督特征抽取

在sklearn中的datasets中,已经内置了鸢尾花的数据集,直接使用即可

from sklearn import datasets
iris = datasets.load_iris()
print(type(iris))
# 查看属性有哪些
print(dir(iris))
# 打印标签
print(iris.target)
# 获取样本和标签
X=iris.data
print(X.shape)
# 打印前四行
print(X[:4])

对应的打印结果:
人工智能学习5(特征抽取),人工智能,人工智能,学习,python

可以看到返回的是一个类。Bunch,用于描述数据集。其属性DESCR是数据描述,target_names是标签名,可自定义默认为文件夹名字,filenames文件夹名,target文件分类可以看成y值,data是数据数组可以看成X。
对数据进行主成分分析

print("------主成分分析PCA-------")
from sklearn.decomposition import PCA
# 实例化
pca=PCA()
X_pca = pca.fit_transform(X)
# 查看X_pca的前四行数据,只看小数点后两位
print(np.round(X_pca[:4], 2))
# 由于没有设置维度,上面只会处理的数据但是没有实现降维
# 通过 explained_variance_ 可以查看各个维度的贡献值
print("explained_variance_查看各个维度的贡献值")
print(pca.explained_variance_)
# 通过 explained_variance_ratio_ 查看各个维度的方差贡献值
print("explained_variance_ratio_查看各个维度的方差贡献值")
print(pca.explained_variance_ratio_)
# 从上面的结果,可以看到保留两个维度,前两个维度较为合理,前两个维度的重要性远高于另外两个
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
print("选择维度后")
print(X_pca[:4])
print("降维后所保留的两个特征的可解释方法比例高达0.98")
print(pca.explained_variance_ratio_.sum())

人工智能学习5(特征抽取),人工智能,人工智能,学习,python

有监督特征抽取(之LDA)

LDA(线性判别分析法)
LDA思想:投影后类内方差最小类间方差最大
和PCA一样通过投影的方法达到去除数据间冗余的一种算法。既可以作为降维的方法,也可以作为分类的方法。
PCA会忽略给出的标签,LDA会利用到这些标签。
LDA降维最多可以降到类别数的k-1的维度,PCA没有这个限制
LDA不适合非高斯分布的样本进行降维
LDA有时会产生过拟合的问题

在人脸识别等图像识别领域广泛应用。

线性分类器(速度快):“超平面”将两个样本隔离开
常见线性分类器:LR逻辑回归、贝叶斯分类、线性回归、SVM(线性核)
非线性分类(拟合能力更强):曲面或者多个“超平面”
常见非线性分类器:决策树、GBDT、多层感知机、SVM(高斯核)

代码实现,生成自己的数据集并进行有监督特征抽取(LDA)

生成自己的数据集
# 生成自己的数据集
from sklearn.datasets import make_classification
X,y=make_classification(
    n_samples=1000, # 产生1000个样本
    n_features=4,   # 每个样本有4个列
    n_repeated=0,
    n_classes=3,    # 一共三个标签(3个类别)
    n_clusters_per_class=1,
    class_sep=0.5,
    random_state=10 # 随机值设置为10
)
print(X.shape,y.shape)

人工智能学习5(特征抽取),人工智能,人工智能,学习,python

PCA降维和LDA降维对比
# PCA降维
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
pca = PCA(n_components=2) # 设置目标维度为2
X_pca = pca.fit_transform(X)
# 绘制图
plt.scatter(X_pca[:,0],X_pca[:,1],c=y)
plt.show()


# 使用LDA降维
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
# 实例化
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X,y)  # LDA是需要数据以及标签的
plt.scatter(X_lda[:,0],X_lda[:,1],c=y)
plt.show()

代码实现LDA降维对鸢尾花数据进行特征抽取

# 使用LDA对鸢尾花数据进行降维
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
iris = datasets.load_iris()
X_iris,y_iris = iris.data,iris.target
# 实例化LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_iris_lda = lda.fit_transform(X_iris,y_iris)
print(X_iris_lda[:4])
print(X_iris_lda.shape)
plt.scatter(X_iris_lda[:,0],X_iris_lda[:,1],c=y_iris)
plt.show()

人工智能学习5(特征抽取),人工智能,人工智能,学习,python

人工智能学习5(特征抽取),人工智能,人工智能,学习,python文章来源地址https://www.toymoban.com/news/detail-767830.html

到了这里,关于人工智能学习5(特征抽取)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用人工智能模型学习Python爬虫

    爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 网络爬虫(又称为网页蜘蛛,网络机器人)是其中一种类型。 爬虫可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。 ——使用讯飞星火

    2024年02月09日
    浏览(47)
  • Python人工智能应用--图像识别&&深度学习

    像素(缩写为px)是图像中的最小单位,由一个个小方格组成。 这些小方格都有一个固定的位置和颜色,共同决定了图像所呈现出来的样子。 这些小方格的行数与列数又被叫做分辨率。我们常说的某幅图像的分辨率是1280×720,指的就是这张图中的每一行都有1280个像素,每一列都

    2024年04月09日
    浏览(71)
  • Python开源项目之人工智能老照片修复算法学习

    老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。 项目的Github地址:项目地址 我们先看看官方给出的效果图: 就算现在看到这张图,我仍然觉着非常惊艳。下面我会把项目环境安装部署,到最后使用的

    2024年02月03日
    浏览(70)
  • Python到机器学习再到深度学习:一条完整的人工智能学习之路

    简短介绍Python在数据科学和机器学习领域的重要性。 概述本文的目标:提供一个清晰的学习路径,帮助初学者从Python基础学起,逐步过渡到机器学习和深度学习。 学习资源 :推荐一些学习Python的好书籍和在线课程。 书籍 :《Python Crash Course》Eric Matthes,适合初学者。 在线课

    2024年02月03日
    浏览(86)
  • 入门人工智能 —— 学习 python 使用 IDE :vscode 完成编程 (2)

    在上一篇文章中,介绍了如何入门人工智能编程,并开始了学习 Python 编程语言的基础知识。本文是系列文章的第二部分,我们将继续探讨 Python 编程,但这次我们将使用 Visual Studio Code(简称 VSCode)作为我们的集成开发环境(IDE)。VSCode 是一个功能强大的文本编辑器,它可以

    2024年02月09日
    浏览(64)
  • 强化学习:原理与Python实战||一分钟秒懂人工智能对齐

    人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”(misalign)的问题。以ChatGPT这样的问答系统为例,ChatGPT的回答可能会含有危害祖国统一、侮辱先烈、丑化中华民族、教唆暴力、出口成“脏”等违法或不符合社会主

    2024年02月05日
    浏览(48)
  • 鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法

    鱼类识别系统。使用Python作为主要编程语言开发,通过收集常见的30种鱼类(‘墨鱼’, ‘多宝鱼’, ‘带鱼’, ‘石斑鱼’, ‘秋刀鱼’, ‘章鱼’, ‘红鱼’, ‘罗非鱼’, ‘胖头鱼’, ‘草鱼’, ‘银鱼’, ‘青鱼’, ‘马头鱼’, ‘鱿鱼’, ‘鲇鱼’, ‘鲈鱼’, ‘鲍鱼’, ‘鲑

    2024年02月02日
    浏览(100)
  • 89 | Python人工智能篇 —— 深度学习算法 Keras 实现 MNIST分类

    本教程将带您深入探索Keras,一个开源的深度学习框架,用于构建人工神经网络模型。我们将一步步引导您掌握Keras的核心概念和基本用法,学习如何构建和训练深度学习模型,以及如何将其应用于实际问题中。

    2024年02月13日
    浏览(59)
  • 【人工智能与机器学习】决策树ID3及其python实现

    决策树(Decision Tree)是一类常见的机器学习方法,是一种非常常用的分类方法,它是一种监督学习。常见的决策树算法有ID3,C4.5、C5.0和CART(classification and regression tree),CART的分类效果一般要优于其他决策树。 决策树是基于树状结构来进行决策的,一般地,一棵决策树包含

    2024年02月08日
    浏览(105)
  • 毕业设计选题:基于机器学习的虚假新闻识别系统 人工智能 python

      目录  前言 设计思路 一、课题背景与意义 二、算法理论原理 2.1 机器学习 2.2 深度学习  三、检测的实现 3.1 数据集 3.3 实验及结果分析 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精

    2024年01月19日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包