一、概述
1、特征选择的原因
冗余:部分特征相关度较高,会消耗计算性能
噪音:部分特征会对模型产生负面影响
2、特征选择是指从提取到的所有特征选择部分特征作为训练特征,筛选前后值可以变也可以不变,但是特征的数量一定是减少的。
3、主要方法
Filter(过滤式):VarianceThreshold
Embedded(嵌入式):正则化、决策树
Wrapper(包裹式)
二、过滤式特征选择
from sklearn.feature_selection import VarianceThreshold
import numpy as np
def var():
var=VarianceThreshold(threshold=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()
其他特征选择的方法:神经网络
三、PCA
本质上是一种分析、简化数据集的技术
目的是实现数据维数压缩,降低原数据维数,但是不损失过多信息。
减少回归分析或聚类分析中特征数量
适用特征数量上百的场景,高维度数据集特征通常线性相关
from sklearn.decomposition import PCA
def pca():
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()
from sklearn.decomposition import PCA
import pandas as pd
##读取数据
aisles=pd.read_csv(r'C:\Users\ms\Desktop\ddup\机器学习算法基础\Data explorer\aisles.csv')
prior=pd.read_csv(r'C:\Users\ms\Desktop\ddup\机器学习算法基础\Data explorer\order_products__prior.csv')
orders=pd.read_csv(r'C:\Users\ms\Desktop\ddup\机器学习算法基础\Data explorer\orders.csv')
products=pd.read_csv(r'C:\Users\ms\Desktop\ddup\机器学习算法基础\Data explorer\products.csv')
##合并数据
mg=pd.merge(aisles,products,on=['aisle_id','aisle_id'])
mg=pd.merge(mg,prior,on=['product_id','product_id'])
mg=pd.merge(mg,orders,on=['order_id','order_id'])
print(mg.shape)
四、机器学习的流程
有监督学习:由特征值+目标值的数据集构建模型,对新输入的特征进行预测。目标值是离散的为分类模型,目标值是连续的为回归模型。
无监督学习:基于仅有特征组成的数据集构建模型,并依此模式推测新的结果。
机器学习模型:通过一种映射关系将输入值映射的输出,算法+数据
流程:
1、目的:需要解决的问题,要构建什么样的模型,根据数据类型划分应用种类
2、特征收集整合基本处理(缺失值、合并表)、特征工程(重要)
3、构建模型:找到合适的算法
4、评估模型,模型合格进入下一步,不合格回到2,调整的思路有:更换算法、调参、特征工程
5、应用:输出为api