特征选择
特征选择原因
冗余:部分特征的相关度高,容易消耗计算性能
噪声:部分特征对预测结果有负影响
特征选择是什么
特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。
主要方法(三大武器):Filter(过滤式):VarianceThreshold Embedded(嵌入式):正则化、决策树 Wrapper(包裹式)
sklearn特征选择API
sklearn.feature_selection.VarianceThreshold
VarianceThreshold(threshold = 0.0)
删除所有低方差特征
Variance.fit_transform(X,y)
X:numpy array格式的数据[n_samples,n_features]
返回值:训练集差异低于threshold的特征将被删除。
默认值是保留所有非零方差特征,即删除所有样本
中具有相同值的特征。
流程:
1初始化VarianceThreshold,指定阀值方差
2调用fit_transform
降维
sklearn降维API
sklearn. decomposition
CPA
本质:PCA是一种分析、简化数据集的技术
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
作用:可以削减回归分析或者聚类分析中特征的数量
PCA语法
PCA(n_components=None)
将数据分解为较低维数空间
PCA.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:转换后指定维度的array
机器学习基础
(1)算法是核心,数据和计算是基础
(2)找准定位
大部分复杂模型的算法设计都是算法工程师在做,而我们
分析很多的数据
分析具体的业务
应用常见的算法
特征工程、调参数、优化
我们应该怎么做
学会分析问题,使用机器学习算法的目的,想要算法完成何种任务
掌握算法基本思想,学会对问题用相应的算法解决
学会利用库或者框架解决问题
机器学习模型
定义:通过一种映射关系将输入值到输出值
机器学习算法分类
监督学习
分类 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
回归 线性回归、岭回归
标注 隐马尔可夫模型
监督学习(英语:Supervised learning),可以由输入数据中学
到或建立一个模型,并依此模式推测新的结果。输入数据是由
输入特征值和目标值所组成。函数的输出可以是一个连续的值
(称为回归),或是输出是有限个离散值(称作分类)。
分类问题
概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果;
回归问题
概念:回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。
### 无监督学习
聚类 k-means
无监督学习(英语:Supervised learning),可以由输入数据中
学到或建立一个模型,并依此模式推测新的结果。输入数据是
由输入特征值所组成。
sklearn数据集
数据集划分
机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
sklearn数据集划分API
sklearn.model_selection.train_test_split
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:标签名,回归数据集没有
sklearn分类数据集
sklearn.datasets.load_iris()
加载并返回鸢尾花数据集
sklearn.datasets.load_digits()
加载并返回数字数据集
sklearn.model_selection.train_test_split(*arrays, **options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机
采样结果。相同的种子采样结果相同。
return 训练集特征值,测试集特征值,训练标签,测试标签
(默认随机取)
用于分类的大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集.
训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None)
清除目录下的数据
sklearn回归数据集
sklearn.datasets.load_boston()
加载并返回波士顿房价数据集
sklearn.datasets.load_diabetes()
加载和返回糖尿病数据集
转换器与预估器
在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API
1、用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归
2、用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归