初识机器学习前导内容_你需要知道的基本概念罗列_以PY为工具 【Python机器学习系列(一)】

文章目录

  • 1.机器学习的组成
  • 2.问题划分
  • 3.学习方式划分
    • 3.1监督学习
    • 3.2半监督学习
    • 3.3无监督学习
  • 4.模型划分
    • 4.1生成模型
    • 4.2判别模型
  • 5.模型评估
    • 5.1训练误差与泛化误差
    • 5.2 过拟合与欠拟合
      • 5.2.1欠拟合
      • 5.2.2过拟合
      • 5.2.3解决方式
  • 6.正则化
  • 7.scikit-learn模块
    • 7.1数据集
      • 加载鸢尾花数据集
      • 加载葡萄酒数据集
      • 加载波士顿房价数据集
      • 加载乳腺癌数据集
    • 7.2划分验证集和测试集

机器学习是当下统计学与计算机科学相结合的产物,关于机器学习的定义,并没有统一的描述。机器学习(machine leaning) 也称统计学习(statistical learning)
“对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指:通过经验E改进后,它在性能T上的性能度量P有所提升。”
                    ——Mitchell
这是Mitchell教授与1997年对机器学习的定义,得到了较为普遍的认同。本专栏blog将围绕python机器学习做出一套较为系统的分享,希望对您能有所帮助!

               


1.机器学习的组成

一个完整的机器学习算法的三要素:

  • 数据
  • 模型
  • 性能度量准则

关于数据,生产实践中得到的数据往往是可能包含大量缺失值、冗余值的“脏数据。对此”需要特征工程进行预处理,

关于模型,即使用的机器学习算法,其依赖于数据的特点及研究人员经验。

关于性能度量准则,性能度量准则用于指导模型参数求解。
训练机器学习模型时对大量的参数进行反复调整或者搜索,称为“调参”;
训练之前调整设置的参数,称为“超参数”。


2.问题划分

根据模型预测输出的连续性,可以将与机器学习算法适配的问题划分为分类问题回归问题
  有时候,回归问题和分类问题可以相互转化,如在估计人的年龄时,假设绝大多数人的年龄都在0-100岁,此时该问题既可以看成回归问题,也可以看出分类问题。(即回归值范围有限且适合作为类别看待)


3.学习方式划分

根据样本集合中是否包含标签,以及包含标签的多少,可以将机器学习分为监督学习半监督学习无监督学习

3.1监督学习

  • 监督学习:样本集合中包含标签的机器学习。以标签数据作为监督信息,来最小化损失函数J,常通过梯度下降、拟牛顿法等算法对模型参数进行更新。其中损失函数J用于描述模型的预测值与真实值之间的差异度。差异度越小,模型对数据的拟合效果越好。

3.2半监督学习

  • 半监督学习:半监督学习介于监督学习和无监督学习之间。有时只能获取到部分数据的标签,半监督学习即同时从有标签的数据和无标签的数据之间进行经验学习。

3.3无监督学习

  • 无监督学习:有时候获取有标签的数据成本过高,需要消耗太多的人力、财力。这个时候就需要从无标签的数据中发掘信息,比如电商平台的商品精准推荐,是无法事先获取标签数据的。这时就需要用到无监督学习。常用的算法有降维、聚类等。

4.模型划分

根据机器学习模型是否可以用于生成新数据,可以将机器学习模型分为生成模型判别模型

4.1生成模型

生成模型,指通过机器学习算法,从训练集中学习到 输入和输出的联合概率分布P(X,Y)。

4.2判别模型

判别模型,指通过机器学习算法,计算 一个条件概率分布P(X,Y),即后验概率分布。


5.模型评估

5.1训练误差与泛化误差

建模前,通常需要把数据划分为训练集验证集测试集

  • 训练集用于对模型的参数进行训练;
  • 验证集用于对训练的模型的验证挑选,辅助调参;
  • 测试集用于测试训练完模型的泛化能力;

**泛化能力(generalization ability)**是指机器学习算法对新鲜样本的适应能力。

训练集上,训练过程中使用训练误差 来衡量模型对训练数据 的拟合能力。
测试集上,使用泛化误差来测试模型的泛化能力。

在模型得到充分训练的条件下,训练误差与泛化误差之间的差异越小,说明模型的泛化性能越好,得到一个泛化性好的模型是机器学习的目的。

训练误差和测试误差往往选择的是同一性能度量函数,只是作用的数据集不同。

5.2 过拟合与欠拟合

5.2.1欠拟合

当训练损失较大的时候,说明模型不能对数据进行很好的拟合,这样的情况称为欠拟合

5.2.2过拟合

当训练误差小且明显低于泛化误差时,称这种情况为过拟合

5.2.3解决方式

  • 对于欠拟合的情况,通常是由模型本身不能对训练集进行拟合或者训练迭代次数太少。解决欠拟合的方法是对模型进行改进,设计新的模型进行训练,增加训练过程的迭代次数等。

  • 对于过拟合的情况,往往是由于数据量太少或者模型太复杂导致。可以通过增加数据量,对模型进行裁剪、正则化的方式来缓解。


6.正则化

正则化是一种抑制模型复杂度的常用方法。正则化用模型参数ω\omegaω的p范数表示为

  • ∣∣ω∣∣p=(∑i=1p∣ωi∣p)1p\displaystyle ||\omega||_p=(\sum_{i=1}^{p}|\omega_i|^p)^{\frac{1}{p}}∣∣ω∣∣p​=(i=1∑p​∣ωi​∣p)p1​

常用正则化方式为p=1或p=2的情形。分别称为L1正则化和L2正则化。

正则化项一般作为损失函数的一部分被加入到原来的基于数据损失函数中。

经验损失:基于数据的损失函数又被称为经验损失
正则化项又称为结构损失

若将原本基于数据的损失函数记为J,带有正则化项的损失函数记为JNJ_NJN​,则最终的损失函数可记为

  • JN=J+λ∣∣ω∣∣p\displaystyle J_N=J+\lambda||\omega||_pJN​=J+λ∣∣ω∣∣p​

其中λ\lambdaλ是用于在模型的经验损失和结构损失之间平衡的超参数。


7.scikit-learn模块

7.1数据集

sklearn.datasets中收录了一些数据集,如鸢尾花数据集,葡萄酒数据集等。
这些数据集通过一系列的load函数加载,如鸢尾数据集是通过sklearn.datasets.load_iris()函数加载的。

加载鸢尾花数据集

from sklearn.datasets import load_iris
iris = load_iris()
x = iris.data
y = iris.target

该数据150个样本,每个样本有四个特征:花萼长,花萼宽,花瓣长,花瓣宽
样本的标签分为三个类别,分别是0,1,2,分别表示Setosa,Versicolour和Virginica3个类别。


加载葡萄酒数据集

from sklearn.datasets import load_wine
wine = load_wine()
x = wine.data
y = wine.target

该数据集有178条记录,每个样本有13个特征,分别对应着葡萄酒的某属性。标签有三个,是葡萄酒的起源地。


加载波士顿房价数据集

from sklearn.datasets import load_boston
boston = load_boston()
x = boston.data
y = boston.target

该数据集有506条数据,13个特征,标签为平均房价。此数据样本是连续变量,适合做回归模型。


加载乳腺癌数据集

from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
x = breast_cancer.data
y = breast_cancer.target

该数据集一共有569条数据,其中有357例为乳腺癌数据,212例为非乳腺癌数据。数据集包含有30个特征。标签则为两个。适合二分类算法测试。


7.2划分验证集和测试集

以波士顿房价数据为例

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
boston = load_boston()
x = boston.data
y = boston.targetx_train, x_test, y_train, y_test = train_test_split(x, y)

详细用法可点击链接跳转学习。


本次分享就到这里,小啾感谢您的关注与支持!

初识机器学习前导内容_你需要知道的基本概念罗列_以PY为工具 【Python机器学习系列(一)】相关推荐

  1. python找不到文件中文文件名_找不到的方法虽然存在于同一个py文件中 - python

    我是python的新手,我的背景是VB.我收到错误,因为"NameError:name'GetASetting'未定义". 日志:[INFO ] Kivy v1.8.0 Purge ...

  2. Python 机器学习/深度学习/算法专栏 - 导读目录

    目录 一.简介 二.机器学习 三.深度学习 四.数据结构与算法 五.日常工具 一.简介 Python 机器学习.深度学习.算法主要是博主从研究生到工作期间接触的一些机器学习.深度学习以及一些算法的实现 ...

  3. Python 机器学习库 Top 10,你值得拥有!

    随着人工智能技术的发展与普及,Python 超越了许多其他编程语言,成为了机器学习领域中最热门最常用的编程语言之一.有许多原因致使 Python 在众多开发者中如此受追捧,其中之一便是其拥有大量的与机 ...

  4. python机器学习库_Python机器学习库 Top 10,你值得拥有!

    随着人工智能技术的发展与普及,Python超越了许多其他编程语言,成为了机器学习领域中最热门最常用的编程语言之一.有许多原因致使Python在众多开发者中如此受追捧,其中之一便是其拥有大量的与机器学习 ...

  5. python 机器学习管道_构建机器学习管道-第1部分

    python 机器学习管道 Below are the usual steps involved in building the ML pipeline: 以下是构建ML管道所涉及的通常步骤: Imp ...

  6. 00_00 python机器学习_各章实例代码汇总(随学习进度更新)

    文章目录 代码整理 第一章 001 散点图 + K邻近算法 + 模型训练 第二章 001 创建两个画布, 分别设置画布大小,然后绘图 002 K邻近算法分类 绘制散点图的决策边界 002 K邻近算法回 ...

  7. 逻辑回归原理梳理_以python为工具 【Python机器学习系列(九)】

    逻辑回归原理梳理_以python为工具 [Python机器学习系列(九)] 文章目录 1.传统线性回归 2.引入sigmoid函数并复合 3. 代价函数 4.似然函数也可以 5. python梯度下降 ...

  8. 基于机器学习的内容推荐算法及其心理学、社会学影响闲谈

    基于机器学习的内容推荐算法目前在各类内容类APP中使用的非常普遍.在购物.时尚.新闻咨询.学习等领域,根据用户的喜好,进行较为精准的用户画像与内容推荐.此类算法不但可以较为准确的分析用户的特征,如年龄 ...

  9. python机器学习预测_使用Python和机器学习预测未来的股市趋势

    python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...

  10. python分类预测降低准确率_十分钟掌握python机器学习特征选择

    十分钟掌握python机器学习特征选择-1.jpg (33.2 KB, 下载次数: 0) 2018-6-26 23:01 上传 在机器学习中,特征选择是实践中的一步, 帮你在所有特征中选择对结果贡献最 ...

最新文章

  1. 7000更换控制器电源步骤_恒温恒湿试验箱几大故障的检查步骤及解决方法说明...
  2. (原创)Android6.0亮屏流程之Keyguard Window绘制
  3. C# 通过拼音检索中文名称
  4. MyEclipse上Git的使用(包含导入和导出)
  5. SQL 数据分析常用语句
  6. Js实现动态插入删除文本框
  7. char,nchar,varchar与nvarchar区别
  8. redhat7.2创建本地yum源
  9. 利用计算机打字教学设计,《争当打字小能手》教学设计方案
  10. Python基础篇:常见常用且要常记得的数据类型--列表
  11. 【eoe 1】获取Android源代码
  12. 总结51单片机避免复位触发的几种方法
  13. bzoj2298: [HAOI2011]problem a
  14. Fabric1.4源码解析:客户端创建通道过程
  15. 用户账户、共享和NTFS权限
  16. 【毕设教程】物联网/嵌入式/单片机毕业设计项目开发流程
  17. C语言简单程序编写(一)
  18. React Suspense 尝鲜
  19. 【java】高尔顿瓶
  20. iPhone手机使用iSH终端运行iperf3命令测试内网Wi-Fi网速

热门文章

  1. 爬取豆瓣音乐Top250详细教程
  2. 如何避免工程项目翻车?
  3. HTML5 + Canvas + 广度优先搜索(BFS) 编写lol连连看
  4. TCP粘包的分析和处理
  5. android声波通信demo,Android声波通信改进版
  6. NPOI导出Word并插入表格和图片
  7. 看的见的算法——三门问题
  8. Android平台下使用BingMaps地图
  9. 连载 北漂十二年祭 3 --Leo第二次面试,无意中的霸王面
  10. 违章查询免费api接口代码