python机器学习基础特征工程算法详解

 更新时间:2021年11月12日 17:02:36   作者:Swayzzu  
这篇文章主要为大家介绍了python机器学习基础特征工程的算法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪

一、机器学习概述

机器学习是从数据中,自动分析获得规律(模型),并利用规律对未知数据进行预测。

二、数据集的构成

1.数据集存储

机器学习的历史数据通常使用csv文件存储。

不用mysql的原因:

1、文件大的话读取速度慢;

2、格式不符合机器学习要求的格式

2.可用的数据集

Kaggle:大数据竞赛平台、80万科学家、真实数据、数据量巨大

Kaggle网址:https://www.kaggle.com/datasets

UCI:360个数据集、覆盖科学生活经济等领域、数据量几十万

UCI数据集网址: http://archive.ics.uci.edu/ml/

scikit-learn:数据量较小、方便学习

scikit-learn网址:http://scikit-learn.org/stable/datasets/index.html#datasets

3.常用数据集的结构

特征值(用以判断目标值所用的条件:比如房子的面积朝向等)+目标值(希望实现的目标:比如房子价格)

有些数据集可以没有目标值。

三、特征工程

”将原始数据转换为能更好地代表预测模型的潜在问题的特征“的过程,叫做特征工程,能够提高对未知数据的预测准确性。特征如果不好,很可能即使算法好,结果也不会尽如人意。

pandas可用于数据读取、对数据的基本处理

sklearn有更多对于特征的处理的强大的接口

特征抽取:

特征抽取API:sklearn.feature_extraction

1.字典数据特征抽取

API:sklearn.feature_extraction.DictVectorizer

语法如下:

字典数据抽取:将字典中的类别数据分别进行转换为特征数据。因此,如果输入的是数组形式,并且有类别的这些特征,需要先转换成字典数据,然后进行抽取。

2.文本特征抽取

Count

类:sklearn.feature_extraction.text.CountVectorizer

用法:

 

1.统计所有文章当中所有的词,重复的只看做一次
2.对每篇文章,在词的列表里面,统计每个词出现的次数
3.单个字母不统计

注意:该方法默认不支持中文,每个中文汉字被视为一个英文字母,中间有空格或者逗号就会被分开,同样的,一个汉字不予统计。(中文可使用jieba分词:pip install jieba,使用:jieba.cut("我是一个程序员"))

3.文本特征抽取:tf-idf

上面的countvec不能处理中性词比如“明天,中午,因为”等。于是可以使用tfidf方法。

tf:term frequency词频(和countvec方法一样)

idf:inverse document frequency逆文档频率 log(总文档数量/该词出现的文档数)

tf * idf 重要性程度

类:sklearn.feature_extraction.text.TfidfVectorizer

4.特征预处理:归一化

特征预处理:通过特定的统计方法,将数据转换为算法要求的数据

特征预处理API:sklearn.preprocessing

归一化API:sklearn.preprocessing.MinMaxScaler

多个特征同等重要并且特征数据之间差距较大的时候,进行归一化。但归一化容易受异常点的影响,因此该方法鲁棒性较差,只适合传统精确小数据场景。

5.特征预处理:标准化

将原始数据变换到均值为0,标准差为1的范围内

标准化API:

sklearn.preprocessing.StandardScaler

标准化适合现代嘈杂大数据场景,在已有样本足够多的情况下比较稳定。

6.特征预处理:缺失值处理

插补:通过缺失值每行或每列的平均值、中位数来填补(一般按列填补)

API:sklearn.impute.SimpleImputer

数据当中的缺失值标记:默认为np.nan

以上就是python机器学习基础特征工程算法详解的详细内容,更多关于python机器学习特征工程的资料请关注脚本之家其它相关文章!

相关文章

  • 详解如何通过Python制作一个密码生成器

    详解如何通过Python制作一个密码生成器

    定期更换密码是一种非常重要的安全措施,这种做法可以有效地保护你的账户和个人信息不受黑客和网络攻击者的侵害。所以本文就来用Python制作一个密码生成器吧
    2023-05-05
  • Python实现多个圆和圆中圆的检测

    Python实现多个圆和圆中圆的检测

    这篇文章主要为大家详细介绍了Python如何实现多个圆检测和圆中圆的检测,文中的实现方法讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • pandas按若干个列的组合条件筛选数据的方法

    pandas按若干个列的组合条件筛选数据的方法

    下面小编就为大家分享一篇pandas按若干个列的组合条件筛选数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python通过索引遍历列表的方法

    python通过索引遍历列表的方法

    这篇文章主要介绍了python通过索引遍历列表的方法,实例分析了Python遍历列表的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • Python邮箱API发送邮件的方法和步骤

    Python邮箱API发送邮件的方法和步骤

    Python是一种功能强大的编程语言,可以用来发送电子邮件,使用Python发送邮件可以通过邮箱API来实现,aoksend将介绍使用Python邮箱API发送邮件的方法和步骤,需要的朋友可以参考下
    2024-04-04
  • linux环境打包python工程为可执行程序的过程

    linux环境打包python工程为可执行程序的过程

    本次需求,在ubuntu上面开发的python代码程序需要打包成一个可执行程序然后交付给甲方,因为不能直接给源码给甲方,所以寻找方法将python开发的源码打包成一个可执行程序,本次在ubuntu上打包python源码的方法和在window上打包的有点类似,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作

    Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作

    这篇文章主要介绍了Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作,涉及Python使用str.startswith()和str.endswith()方法针对字符串开始或结尾处特定文本匹配操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • 详解python日期时间处理2

    详解python日期时间处理2

    这篇文章主要为大家介绍了python日期时间处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • pandas数据类型之Series的具体使用

    pandas数据类型之Series的具体使用

    本文主要介绍了pandas数据类型之Series的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 在Keras中利用np.random.shuffle()打乱数据集实例

    在Keras中利用np.random.shuffle()打乱数据集实例

    这篇文章主要介绍了在Keras中利用np.random.shuffle()打乱数据集实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06

最新评论