机器学习算法基础第二天

1043-李同学

发表文章数:31

热门标签

首页 » 算法 » 正文

一.特征选择

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

主要方法:
①Filter(过滤式):VarianceThreshold
② Embedded(嵌入式):正则化、决策树
③ Wrapper(包裹式)

sklearn特征选择API: sklearn.feature_selection.VarianceThreshold
机器学习算法基础第二天
输出结果:
机器学习算法基础第二天
删除低方差的目的:因为当方差较低时,此特征比较接近,不易于区分或者区分后意义不大。

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

二.PCA(主成分分析)

2.1
本质:PCA是一种分析、简化数据集的技术。用于特征数量达到上百时,考虑数据的简化。高维度数据容易出现的问题:特征之间通常是线性相关
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
作用:可以削减回归分析或者聚类分析中特征的数量。

示例:机器学习算法基础第二天
机器学习算法基础第二天
机器学习算法基础第二天

矩阵运算得出P为机器学习算法基础第二天
机器学习算法基础第二天
2.2 PCA语法
PCA(n_components=None),将数据分解为较低维数空间
n_components为小数时,代表百分比,例如0.9,代表特征保留百分之90。若为整数时,则代表保留的数目,如10,代表特征保留10个。

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

klearn降维API: sklearn. decomposition.PCA

机器学习算法基础第二天
输出结果:
机器学习算法基础第二天
2.3 实例分析
探究:用户对物品类别的喜好细分降维
数据:
products.csv————————————————– 商品信息
product_id,product_name,aisle_id,department_id

order_products__prior.csv——————————- 订单与商品信息
order_id,product_id,add_to_cart_order,reordered

orders.csv ————————————————- 用户的订单信息
order_id,user_id,eval_set,order_number,order_dow,order_hour_of_day,days_since_prior_order

aisles.csv —————————————————商品所属具体物品类别
aisle_id,aisle
机器学习算法基础第二天
机器学习算法基础第二天
4张表合并到一张表后,虽然有用户对物品类别的喜好,但是,有着过多冗余数据,从图中可以看出有206209行,行数代表用户,134列,列数代表种类。利用PCA主动降维,最后列数的种类发生了变化。

三.数据集划分

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

3.1 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 数组
arget:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名,回归数据集没有
机器学习算法基础第二天
机器学习算法基础第二天
输出结果:
机器学习算法基础第二天
机器学习算法基础第二天
机器学习算法基础第二天

3.2 数据集进行分割
sklearn.model_selection.train_test_split(*arrays, **options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机
采样结果。相同的种子采样结果相同。

return 训练集特征值,测试集特征值,训练标签,测试标签
(默认随机取)
机器学习算法基础第二天
输出结果:
机器学习算法基础第二天
机器学习算法基础第二天
机器学习算法基础第二天
机器学习算法基础第二天
3.3 用于分类的大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集.
训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None),清除目录下的数据
机器学习算法基础第二天
输出结果:
机器学习算法基础第二天

四.sklearn机器学习算法的实现-估计器

在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API。
1、用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归
2、用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归
机器学习算法基础第二天

未经允许不得转载:作者:1043-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《机器学习算法基础第二天》 发布于2020-10-06

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录