机器学习基础算法2-数据降维,数据划分,转化器,估计器。

目录

数据的降维

特征选择

特征选择原因

主要方法

Filter(过滤式):VarianceThreshold

数据降维

PCA(主成分分析)

降维案例

机器学习开发流程

机器学习算法分类

数据集划分

scikit-learn数据集API介绍

sklearn分类数据集

数据集分割

转换器

估计器


 

数据的降维

特征选择

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

特征选择原因

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

主要方法

Filter(过滤式):VarianceThreshold

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

       

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

1、初始化VarianceThreshold,指定阀值方差,2、调用fit_transform。

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

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

    print(data)
    return None

数据降维

PCA(主成分分析)

当特征数量达到上百的时候 ,就需要考虑数据的简化,数据也会改变,特征数量也会减少。特征之间通常是相关的

PCA是一种分析、简化数据集的技术。目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。作用:可以削减回归分析或者聚类分析中特征的数量。

PCA( n_components =None )
将数据分解为较低维数空间
 
PCA . fit_transform (X)      
X:numpy array 格式 的数据 [ n_samples,n_features ]
返回值:转换后 指定维度 array

n_components :小数 0~1 降维到90~95%最好

                            整数 减少到的特征数量

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

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

    print(data)

    return None

降维案例

instacart:把用户分成几个类别 用户-购买的物品类别,数据【products.csv--商品信息】【order_products__prior.csv--订单与商品信息】【order.csv--用户的订单信息】【aisles.csv--商品所属具体物品类别】

流程 1.将各个表按相同字段合并。2.建立一个类似行,列数据。交叉表:(特殊的分组表)

 

机器学习开发流程

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

机器学习算法分类

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

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

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

回归:目标值连续型

数据集划分

机器学习一般的数据集会划分为两个部分:训练数据:用于训练,构建模型测试数据:在模型检验时使用,用于评估模型

是否有效。

scikit-learn数据集API介绍

sklearn. datasets
加载获取流行数据集
datasets.load _*()
获取小规模数据集,数据包含在 datasets
datasets.fetch _*( data_home =None)
获取大规模数据集,需要从网络上下载,函

  数的第一个参数是data_home,表示数据集

  下载的目录,默认是 ~/scikit_learn_data/

sklearn分类数据集

from sklearn.datasets import  load_iris

li=load_iris()

print('获取特征值')
print(li.data)#二维数组,每一行一个样本
print('获取目标值')
print(li.target)#数值代表的花类型
print(li.DESCR)#描述

数据集分割

sklearn.model_selection.train_test_split ( *arrays **options )
       数据集的特征值
y        数据集的标签值
test_size       测试集的大小,一般为 float
random_state        随机数种子 , 不同的种子会造成不同的随机

采样结果。相同的种子采样结果相同。

return  训练集特征值,测试集特征值,训练标签,测试标签

(默认随机取

#注意返回值,训练集 train ,x_train训练集中的特征值 y_train训练集中的目标值, 测试集 test x_test y_test
x_train,x_test,y_train,y_test=train_test_split(li.data,li.target,test_size=0.25)#第一个参数数据集的特征值,第二个目标值,第三个测试集占的大小

print("训练集特征值和目标值:", x_train, y_train)
print("测试集特征值和目标值:", x_test, y_test)

转换器

fit_transform():输入数据直接转换。

fit():输入数据,计算平均值,方差等等,定标准。

transform:进行数据转换。

估计器

估计器工作流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值