机器学习算法基础 DAY 2

本文介绍了机器学习中的特征选择,重点讲解了VarianceThreshold方法,包括其语法和流程。接着探讨了PCA主成分分析在降维中的应用,通过实例展示了如何使用PCA。此外,文章还概述了机器学习的基本概念,包括监督学习和无监督学习,以及数据集的划分和处理。最后提到了sklearn库中的数据集和转换器、估计器的概念。
摘要由CSDN通过智能技术生成

特征选择

特征选择原因

  • 冗余:部分特征的相关度高,容易消耗计算性能

  • 噪声:部分特征对预测结果有负影响

特征选择是什么

特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,
特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯
定比选择前小,毕竟我们只选择了其中的一部分特征。

主要方法(三大武器):

  • Filter(过滤式):VarianceThreshold

  • Embedded(嵌入式):正则化、决策树

  • Wrapper(包裹式)

VarianceThreshold方法API:

sklearn.feature_selection.VarianceThreshold

VarianceThreshold语法

  • VarianceThreshold(threshold = 0.0):
    删除所有低方差特征

  • Variance.fit_transform(X,y):
    X:numpy array格式的数据[n_samples,n_features];
    返回值:训练集差异低于threshold的特征将被删除;
    默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。

VarianceThreshold流程

  1. 初始化VarianceThreshold,指定阈值为差
  2. 调用fit_transform

[[0, 2, 0, 3],
[0, 1, 4, 3],
[0, 1, 1, 3]]

示例:

from sklearn.feature_selection import VarianceThreshold

def var():
    """
    特征选择-删除低方差的特征
    :return: None
    """
    var = VarianceThreshold(threshold=0.0)

    data = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])

    print(data)
    return None

if __name__ == "__main__":
    var()

运行结果:
将方差为0的列去掉了

[[2 0]
 [1 4]
 [1 1]]

其他特征选择方法:神经网络

sklearn降维主成分分析

API:

sklearn. decomposition

PCA(主成分分析)

PCA是一种分析、简化数据集的技术。

目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。

作用:可以削减回归分析或者聚类分析中特征的数量

PCA语法

  • PCA(n_components=None):
    将数据分解为较低维数空间;
    n_components为小数,表示保留百分之多少信息,如0.9→保留90%;
    n_components为整数,表示减少到的特征数量,一般不用。

  • PCA.fit_transform(X):
    X:numpy array格式的数据[n_samples,n_features]
    返回值:转换后指定维度的array

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PCA流程

  1. 初始化PCA,指定减少后的维度
  2. 调用fit_transform

[[2,8,4,5],
[6,3,0,8],
[5,4,9,1]]

示例:

from sklearn.decomposition import PCA

def pca():
    """
    主成分分析进行特征降维
    :return: None
    """
    pca = PCA(n_components=0.9)

    data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])

    print(data)

    return None

if __name__ == "__main__":
    pca()

运行结果:

[[ 0.          3.82970843]
 [-5.74456265 -1.91485422]
 [ 5.74456265 -1.91485422]]

降维案例

按照用户对物品类别的喜好细分降维。

数据:

  • products.csv :商品信息
  • order_products__prior.csv:订单与商品信息
  • orders.csv: 用户的订单信息
  • aisles.csv: 商品所属具体物品类别

因为用户和物品类别,没在一个表内,所以需要按照不同表格的相同特征,合并表格信息。

1.合并各表到一张表中

在这里插入图片描述

2.建立一个类似行、列数据

交叉表(特殊的分组表)
在这里插入图片描述

3.主成分分析
在这里插入图片描述

其他降维方法

线性判别分析LDA

机器学习基础

  1. 机器学习开发流程

  2. 机器学习模型是什么

  3. 机器学习算法分类

算法是核心,数据和计算是基础

机器学习算法分类

  • 监督学习(预测)

分类(目标值为离散型):k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络

回归(目标值为连续型):线性回归、岭回归

标注 隐马尔可夫模型 (不做要求)

  • 无监督学习
    聚类 k-means

在这里插入图片描述

监督学习

监督学习(英语:Supervised learning),可以由输入数据中学
到或建立一个模型,并依此模式推测新的结果。输入数据是由
输入特征值和目标值所组成。函数的输出可以是一个连续的值
(称为回归),或是输出是有限个离散值(称作分类)。

无监督学习

无监督学习(英语:Supervised learning),可以由输入数据中
学到或建立一个模型,并依此模式推测新的结果。输入数据是
由输入特征值所组成。

分类问题

在这里插入图片描述

概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果。

分类问题的应用:

分类在于根据其特性将数据“分门别类”,所以在许多领域都有广泛的应用

在银行业务中,构建一个客户分类模型,按客户按照贷款风险的大小进行分类

图像处理中,分类可以用来检测图像中是否有人脸出现,动物类别等

手写识别中,分类可以用于识别手写的数字

文本分类,这里的文本可以是新闻报道、网页、电子邮件、学术论文

回归问题

在这里插入图片描述

概念:回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。

回归问题的应用:

回归在多领域也有广泛的应用

房价预测,根据某地历史房价数据,进行一个预测

金融信息,每日股票走向

机器学习开发流程

在这里插入图片描述

sklearn数据集

  1. 数据集划分
  2. sklearn数据集接口介绍
  3. sklearn分类数据集
  4. sklearn回归数据集

数据集划分

机器学习一般的数据集会划分为两个部分:

训练数据:用于训练,构建模型

测试数据:在模型检验时使用,用于评估模型是否有效

sklearn数据集划分API:

sklearn.model_selection.train_test_split

scikit-learn数据集API介绍

  • sklearn.datasets
    加载获取流行数据集

  • datasets.load_*()
    获取小规模数据集,数据包含在datasets里

  • datasets.fetch_*(data_home=None)
    获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/

获取数据集返回的类型

load和fetch返回的数据类型datasets.base.Bunch(字典格式)

data:特征数据数组,是 [n_samples * n_features] 的二维numpy.ndarray 数组

target:标签数组,是n_samples 的一维 numpy.ndarray 数组

DESCR:数据描述

feature_names:特征名,新闻数据,手写数字、回归数据集没有

target_names:标签名,回归数据集没有

示例:

from sklearn.datasets import load_iris

li = load_iris()

print("获取特征值")
print(li.data)
print("目标值")
print(li.target)
print(li.DESCR)

运行结果:

获取特征值
[[5.1 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值