python机器学习算法与数据降维分析详解

 更新时间:2021年11月12日 16:41:58   作者:Swayzzu  
这篇文章主要为大家介绍了python机器学习算法与数据降维的分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

一、数据降维

机器学习中的维度就是特征的数量,降维即减少特征数量。降维方式有:特征选择、主成分分析。

1.特征选择

当出现以下情况时,可选择该方式降维:

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

②噪声:部分特征对预测结果有影响

特征选择主要方法:过滤式(VarianceThreshold)、嵌入式(正则化、决策树)

过滤式:

sklearn特征选择API

sklearn.feature_selection.VarianceThreshold

注意:没有最好的方差选择,需要根据实际效果选择方差。

2.主成分分析(PCA)

API:sklearn.decomposition

主成分分析会尽可能降低原数据的维数,损失少量信息。当特征数量达到上百的时候,就需要考虑主成分分析。可以削减回归分析或者聚类分析中特征的数量。

PCA语法:

里面的n_components通常填0-1的小数,代表保留百分之多少的数据,比如0.95意思是保留95%的数据。通常在0.9-0.95之间

3.降维方法使用流程

例如:研究用户和购买物品类别的关系,数据有不同的表格存储,均为csv文件,但所需的两者“用户”和“购买物品类别”,存在于不同的表中。则可以按照以下流程进行:

1.观察各个表格的键,通过相同的键对表格进行合并,使用pandas.merge(表1,表2,键1,键2)方法,其中键1和键2相同。经过多次合并,最终将两个目标合并到一张表中。

2.通过交叉表pd.crosstab(合并后的表['用户'], 合并后的表['物品类别']),建立一个以用户为行,以物品类别为列的数据表。

3.对表格进行数据的降维,可以使用PCA(n_components=0.9),保留90%的有效信息,输出降维后的数据。即可有效减少维度,并确保留存90%的有效信息。

二、机器学习开发流程

1.机器学习算法分类

数据类型:

离散型:区间内不可分,通常是在分类型问题中。

连续型:区间内可分,通常是在预测型问题中。

算法分类:

算法总体分为两类,监督学习和无监督学习。

①监督学习包含特征值+目标值,算法又分为两小类,分类算法和回归算法。

分类算法:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络

回归算法:线性回归、岭回归

②无监督学习只有特征值,通常是聚类算法:k-means

2.机器学习开发流程

机器学习开发首先需要有数据,数据来源可能有以下几种:公司本身有数据、合作过来的数据、购买的数据。

具体开发流程如下:

①明确实际问题做什么:根据目标值数据类型,建立模型,划分应用种类。看看是分类问题还是预测问题。

②数据的基本处理:使用pandas处理数据,缺失值,合并表等等。

③特征工程:对数据特征进行处理(重要)。

④找到合适的算法去进行预测。

⑤模型的评估,判定效果→上线使用,以API形式提供;若模型评估没有合格:换算法、参数,特征工程

sklearn数据集的使用:

通常在使用前会对数据集进行划分,从数据中拿出约75%作为训练集、25%作为测试集。也可以0.8/0.2等。通常0.75/0.25是使用最多的。

sklearn数据集划分API:sklearn.model_selection.train_set_split

sklearn数据集API:

获取数据集返回的类型:

数据集进行分割:

用于分类的大数据集:

sklearn回归数据集:

三、转换器与估计器

1.转换器

在数据处理中用到的fit_tansform方法中,其实可以拆分为fit方法和transform方法。

fit_transform() = fit() + transform()

若直接使用fit_transform(),则是对输入的数据进行求平均值、标准差,并使用它们进行数据处理最终输出结果。

如果拆开的话:

fit():输入数据,计算平均值,标准差等,不进行后续工作。

transform():使用fit计算好的内容进行转换。

也就是说可以通过fit()方法,生成1个数据对应的标准,使用这个标准,对其他数据,通过transform方法进行转换。

2.估计器

估计器就是已经实现了的算法的API,可以直接调用,输入相关数据,对结果进行预测等。

估计器工作流程:

1.调用fit(x_train, y_train),输入训练集

2.输入测试集的数据(x_test, y_test),调用不同接口可得不同结果

API①:y_predict = predict(x_test),该接口可获得算法对y的预测值。

API②:score(x_test, y_test) ,该接口可获得预测的准确率。

以上就是python机器学习算法与数据降维分析详解的详细内容,更多关于python机器学习算法与数据降维的资料请关注脚本之家其它相关文章!

相关文章

  • Python如何匹配文本并在其上一行追加文本

    Python如何匹配文本并在其上一行追加文本

    这篇文章主要介绍了Python如何匹配文本并在其上一行追加文本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python自动重试HTTP连接装饰器

    Python自动重试HTTP连接装饰器

    这篇文章主要介绍了Python自动重试HTTP连接装饰器,有时候我们要去别的接口取数据,可能因为网络原因偶尔失败,为了能自动重试,写了这么一个装饰器,可以实现自动重连2次,需要的朋友可以参考下
    2015-04-04
  • Python基础详解之邮件处理

    Python基础详解之邮件处理

    这篇文章主要介绍了Python基础详解之邮件处理,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Python中的浮点数原理与运算分析

    Python中的浮点数原理与运算分析

    这篇文章主要介绍了Python中的浮点数原理与运算分析,结合实例形式分析了Python浮点数操作的常见错误,并简单解释了浮点数运算的原理与比较运算实现方法,需要的朋友可以参考下
    2017-10-10
  • python淘宝抢购脚本程序实现

    python淘宝抢购脚本程序实现

    大家好,本篇文章主要讲的是python淘宝抢购脚本程序实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

    详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

    这篇文章主要介绍了python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python+FuzzyWuzzy实现模糊匹配的示例详解

    Python+FuzzyWuzzy实现模糊匹配的示例详解

    在日常开发工作中,经常会遇到这样的一个问题:要对数据中的某个字段进行匹配,但这个字段有可能会有微小的差异。本文将分享一个简单易用的模糊字符串匹配工具包:FuzzyWuzzy,让你轻松解决烦恼的匹配问题
    2022-04-04
  • 在Python中预先初始化列表内容和长度的实现

    在Python中预先初始化列表内容和长度的实现

    今天小编就为大家分享一篇在Python中预先初始化列表内容和长度的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python中的时区问题

    python中的时区问题

    这篇文章主要介绍了python中的时区问题的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • python Django 创建应用过程图示详解

    python Django 创建应用过程图示详解

    这篇文章主要介绍了python Django 创建应用过程图示详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论