机器学习概述、特征工程、机器学习算法基础

1.机器学习概述

1.什么是机器学习

机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。
机器学习算法是从 数据 中自动分析获得规律(模型),并利用规律对未知数据进行预测

2.为什么需要机器学习

21世纪机器学习又一次被人们关注,而这些关注的背后是因为整个环境的改变,我们的数据量越来越多,硬件越来越强悍。急需要解放人的生产力,自动去寻找数据的规律。解决更多专业领域的问题。
在这里插入图片描述

3.机器学习的应用场景

机器学习已广泛应用于数据挖掘、计算机视觉、推荐系统、自然语言处理、生物特征识别、搜索引擎、无人驾驶、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。

4.开发机器学习应用程序的步骤

(1)收集数据

我们可以使用很多方法收集样本数据,如:制作网络爬虫从网站上抽取数据、从RSS反馈或者API中得到信息、设备发送过来的实测数据。

(2)准备输入数据

得到数据之后,还必须确保数据格式符合要求。

(3)分析输入数据

这一步的主要作用是确保数据集中没有垃圾数据。如果是使用信任的数据来源,那么可以直接跳过这个步骤

(4)训练算法

机器学习算法从这一步才真正开始学习。如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容在第(5)步

(5)测试算法

这一步将实际使用第(4)步机器学习得到的知识信息。当然在这也需要评估结果的准确率,然后根据需要重新训练你的算法

(6)使用算法

转化为应用程序,执行实际任务。以检验上述步骤是否可以在实际环境中正常工作。如果碰到新的数据问题,同样需要重复执行上述的步骤

2.数据来源与类型

1.数据来源

大部分的数据都来自已有的数据库,如果没有的话也可以交给很多爬虫工程师去采集,来提供。也可以来自平时的记录,反正数据无处不在,大都是可用的。

  • 企业日益积累的大量数据(互联网公司更为显著)
  • 政府掌握的各种数据
  • 科研机构的实验数据
  • 。。。

2.数据类型

按照机器学习的数据分类我们可以将数据分成:

  • 标称型:标称型目标变量的结果只在有限目标集中取值,如真与假(标称型目标变量主要用于分类)
  • 数值型:数值型目标变量则可以从无限的数值集合中取值,如0.100,42.001等 (数值型目标变量主要用于回归分析)

按照数据的本身分布特性

  • 离散型
  • 连续型

那么什么是离散型和连续型数据呢?首先连续型数据是有规律的,离散型数据是没有规律的

  • 离散变量是指其数值只能用自然数或整数单位计算的则为离散变量.例如,班级人数、进球个数、是否是某个类别等等

  • 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。

  • 连续型数据是指在指定区间内可以是任意一个数值,例如,票房数据、花瓣大小分布数据

  • 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续
    的,如,长度、时间、质量值等,这类整数通常是非整数,含有小数
    部分。

注:只要记住一点,离散型是区间内不可分,连续型是区间内可分

3.可用的数据集

在这里插入图片描述

4.常用数据集的结构组成

结构:特征值+目标值
在这里插入图片描述
注:有些数据集可以没有目标值

3.数据的特征工程

1.特征工程是什么

特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性
从数据中抽取出来的对预测结果有用的信息,通过专业的技巧进行数据处理,使得特征能在机器学习算法中发挥更好的作用。优质的特征往往描述了数据的固有结构。 最初的原始特征数据集可能太大,或者信息冗余,因此在机器学习的应用中,一个初始步骤就是选择特征的子集,或构建一套新的特征集,减少功能来促进算法的学习,提高泛化能力和可解释性。

例如:你要查看不同地域女性的穿衣品牌情况,预测不同地域的穿衣品牌。如果其中含有一些男性的数据,是不是要将这些数据给去除掉

2.特征工程的意义

直接影响模型的预测结果
更好的特征意味着更强的鲁棒性
更好的特征意味着只需用简单模型
更好的特征意味着更好的结果

3.scikit-learn库介绍

  • Python语言的机器学习工具

  • Scikit-learn包括许多知名的机器学习算法的实现

  • Scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。

  • 基于NumPy、SciPy和matplotlib构建

  • 开源、商业可用 - BSD许可

  • 目前发布版本1.0

    自2007年发布以来,scikit-learn已经成为最给力的Python机器学习库(library)了。scikit-learn支持的机器学习算法包括分类,回归,降维和聚类。还有一些特征提取(extracting features)、数据处理(processing data)和模型评估(evaluating models)的模块。作为Scipy库的扩展,scikit-learn也是建立在Python的NumPy和matplotlib库基础之上。NumPy可以让Python支持大量多维矩阵数据的高效操作,matplotlib提供了可视化工具,SciPy带有许多科学计算的模型。     
    scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。开发者用scikit-learn实验不同的算法,只要几行代码就可以搞定。scikit-learn包括许多知名的机器学习算法的实现,包括LIBSVM和LIBLINEAR。还封装了其他的Python库,如自然语言处理的NLTK库。另外,scikit-learn内置了大量数据集,允许开发者集中于算法设计,节省获取和整理数据集的时间。
    在这里插入图片描述

4.数据的特征抽取

现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取. sklearn.feature_extraction提供了特征提取的很多方法

1. 特征抽取实例演示

通过演示得出结论:

  • 特征抽取针对非连续型数据
  • 特征抽取对文本等进行特征值化
    注:特征值化是为了计算机更好的去理解数据

2. sklearn特征抽取API

sklearn.feature_extraction

3. 字典特征抽取

作用:对字典数据进行特征值化

类:sklearn.feature_extraction.DictVectorizer

在这里插入图片描述

流程
  1. 实例化类DictVectorizer
  2. 调用fit_transform方法输入数据并转换 注意返回格式

4.分类特征变量提取

我们将城市和环境作为字典数据,来进行特征的提取。

sklearn.feature_extraction.DictVectorizer(sparse = True)

将映射列表转换为Numpy数组或scipy.sparse矩阵

  • sparse 是否转换为scipy.sparse矩阵表示,默认开启
方法
fit_transform(X,y)

应用并转化映射列表X,y为目标类型

inverse_transform(X[, dict_type])

将Numpy数组或scipy.sparse矩阵转换为映射列表

from sklearn.feature_extraction import DictVectorizer
onehot = DictVectorizer() # 如果结果不用toarray,请开启sparse=False
instances = [{
   'city': '北京','temperature':100},{
   'city': '上海','temperature':60}, {
   'city': '深圳','temperature':30}]
X = onehot.fit_transform(instances).toarray()
print(onehot.inverse_transform(X))

5. 文本特征抽取(英文)

文本的特征提取应用于很多方面,比如说文档分类、垃圾邮件分类和新闻分类。那么文本分类是通过词是否存在、以及词的概率(重要性)来表示。

在这里插入图片描述
max_df,min_df整数:指每个词的所有文档词频数不小于最小值,每个文档中每个词的词频不超过此文档的最大值
max_df,min_df小数:每个词的次数/所有文档数量

(1)文档中的词的出现

数值为1表示词表中的这个词出现࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值