数据降维:
维度:特征的数量
特征选择:
特征选择就是单纯的从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中一部分特征
主要方法:
- Filter(过滤式):VarianceThreshold
- Embedded(嵌入式):正则化、决策树
- Wrapper(包裹式)
特征选择API:
sklearn.feature_selection.VarianceThreshold
- VarianceThreshold(threshold = 0.0)
- 删除所有低方差特征
- Variance.fit_transform(X)
- X:numpy array格式的数据[n_samples, n_features]
- 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征
过滤式:
from sklearn.feature_selection import VarianceThreshold
def var():
"""
特征选择-删除低方差特征
"""
var = VarianceThreshold(threshold = 0.0)
data = var.fit_transform()
print(data)
return None
sklearn主成分分析API:
sklearn.decomposition
PCA是一种分析、简化数据集的技术,是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。可以消减回归分析或者聚类分析种特征的数量
from sklearn.decomposition import PCA
def pca():
"""
主成分分析进行特征降维
"""
PCA(n_components = 0.9) # 0.9表示保留90%的特征,可以改,需要在[0, 1]区间内
data = pca.fit_transform()
print(data)
return None
高维数据容易出现的问题:
- 特征之间容易相关
交叉表:一种特殊的分组工具,可以手动指定表的行和列
主成分分析一般用于特征数量多的时候,特征选择用于特征数量少的时候
监督学习:特征值+目标值
- 分类:k-近邻算法,贝叶斯分类,决策树与随机森林,逻辑回归,神经网络
- 回归:线性回归,岭回归
非监督学习:特征值 - 聚类:k-means
分类问题:目标值离散型
回归问题:目标值连续型
建立模型:
- 原始数据明确问题做什么
- 数据的基本处理
- 特征工程(特征进行处理)
- 找合适的算法进行预测
- 模型评估
- 未合格:换算法,参数;换特征工程
- 合格:上线使用