机器学习算法

  • 机器学习算法
    • 数据类型:
    • 可用数据集:
    • 监督学习和无监督学习:
    • 算法分类:
  • scikit-learn数据集
    • 获取数据集:
    • 获取数据集方式:
    • 数据集的划分:
    • 本地数据集:
      • 分类数据集:
      • 回归数据集:
    • 远程数据集:
      • 分类数据集:
  • K近邻算法
    • K近邻算法原理:
    • 使用`sklearn`实现`K`近邻算法:
    • 案例:
    • `K`(也就是`n_neighbors`)值该去多大?
    • K近邻算法的优缺点:
    • 作业:
  • 朴素贝叶斯
    • 贝叶斯:
    • 概率计算小案例:
    • 联合概率和条件概率:
      • 联合概率:
      • 条件概率:
    • 朴素贝叶斯公式:
    • 贝叶斯公式例子:
    • 文档分类:
    • 拉普拉斯平滑系数:
    • 文章分类实战:
    • 朴素贝叶斯模型:
      • 多项式模型:
      • 高斯模型:
    • 伯努利模型:
    • 朴素贝叶斯算法总结:
      • 优点:
      • 缺点:
  • 决策树
    • 决策树理解:
    • 信息熵:
    • 信息熵的补充:
    • 信息增益:
    • 贷款案例信息增益:
    • 决策树算法选择:
      • ID3:
      • C4.5:
      • CART:
    • 预剪枝和后剪枝:
      • 预剪枝:
      • 后剪枝:
    • sklearn实现决策树:
    • 决策树案例-泰坦尼克号获救预测:
    • 绘制决策树:
  • 集成算法之随机森林
    • 学习算法:
    • 理解:
      • 为什么要随机抽样训练集?
      • 为什么要有放回地抽样?
    • sklearn实现随机森林:

机器学习算法

数据类型:

不同类型的数据集采用的算法是不一样的。总体来说,生活场景中只有两种类型的数据,一种是离散型,一种是连续型:

  1. 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。比如分类就是离散型数据。
  2. 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的。如,长度、时间、质量值等,这类数通常是非整数,含有小数部分。

可用数据集:

  1. Kaggle:一个大数据竞赛平台,上面的数据都是真实的,并且有很多数据集。网址是https://www.kaggle.com/datasets
  2. UCI:收录了360个数据集,覆盖了科学、生活、经济等领域。网址是http://archive.ics.uci.edu/ml/
  3. scikit-learn数据集:用于学习的数据集,数据量比较小,但是方便获取和学习。网址http://scikit-learn.org/stable/datasets/index.html#datasets

监督学习和无监督学习:

  1. 监督学习(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。
  2. 无监督学习(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。

算法分类:

  1. 监督学习:

    • 分类:K近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络。
    • 回归:线性回归、岭回归。
  2. 无监督学习:
    • 聚类:k-means

scikit-learn数据集

获取数据集:

sklearn内部提供了一些数据集,用于学习使用。在使用他之前,首先对他进行一些了解。

获取数据集方式:

获取数据集的方式有两种,有load_*fetch_*。以下:

  1. sklearn.datasets.load_*():获取小规模的数据集,数据集已经随着scikit-learn安装而下载了。
  2. sklearn.datasets.fetch_*(data_home=None):用于从远程获取大规模的数据集,函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scikit_learn_data/

两种方式返回的结果都是sklearn.utils.Bunch类型,这种数据类型有以下方法和属性:

  1. data:特征数据数组,是[n_samples * n_features]的二维numpy.ndarray数组。
  2. target:标签数组,是n_samples的一维numpy.ndarray数组。
  3. DESCR:数据描述。
  4. feature_names:特征名,新闻数据、手写数字、回归数据集没有。
  5. target_names:标签名,回归数据集没有。

数据集的划分:

我们拿到数据集后,一般会采用75%的用于训练,25%的用来测试。因此在把数据进行训练之前,先要对数据进行划分。我们可以使用sklearn.model_selection.train_test_split进行分割,train_test_split中的常用参数如下:

  1. x:数据集的特征值。
  2. y:数据集的目标值。
  3. test_size:测试的数据的占比,用小数表示。

返回值如下:

  1. x_train:训练部分的特征值。
  2. x_test:测试部分的特征值。
  3. y_train:训练部分的特征值。
  4. y_test:测试部分的目标值。

示例代码如下:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_splitdef dataset_split():li = load_iris()x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size=0.25)print("训练集的数据:",x_train,y_train)print("测试集的数据:",x_train,x_test)

本地数据集:

分类数据集:

  1. load_iris:鸢尾花花瓣数据集。
  2. load_digits:手写数字数据集。
  3. load_wine:红酒数据集。
  4. load_breast_cancer:乳腺癌数据集。

回归数据集:

  1. load_boston:波士顿房价数据集。
  2. load_diabetes:糖尿病数据集。
  3. load_linnerud:体能训练数据集。

以上所有的数据集的网址为:https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_boston.html#sklearn.datasets.数据集函数名

远程数据集:

远程数据集是一些真实的数据,一般都比较大,因此在需要的时候进行加载即可。

分类数据集:

  1. fetch_olivetti_faces:面孔数据集。
  2. fetch_20newsgroups:20个新闻组数据集。
  3. fetch_lfw_people:户外人脸识别数据集。
  4. fetch_lfw_pairs:户外人脸对(同一个人两个图片)数据集。
  5. fetch_covtype:美国一块30*30m的森林斑块土地,上面覆盖了不同类型的树木。
  6. fetch_rcv1:路透社文集I (RCV1)。由路透社有限公司为研究目的提供的80多万篇手动分类的新闻专线报道的存档。
  7. fetch_california_housing:加利福尼亚房子数据集。

K近邻算法

K近邻算法原理:

K近邻算法是如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
他的原理就是求两点之间的距离,看距离谁是最近的,以此来区分我们要预测的这个数据是属于哪个分类:

比如有两点,要求他们的距离,a(a1,a2,a3),b(b1,b2,b3),则计算公式为:

√((												

【强烈推荐】机器学习之算法篇相关推荐

  1. 15分钟带你入门sklearn与机器学习——分类算法篇

    作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...

  2. 机器学习(算法篇)——K-近邻算法

    目录 K-近邻算法简介 K-近邻算法(KNN)概念 实现流程 k近邻算法api初步使用 机器学习流程: Scikit-learn工具介绍 Scikit-learn包含的内容 K-近邻算法API 距离度 ...

  3. 深度学习核心技术精讲100篇(二十八)-由浅入深概览机器学习优化算法

    前言 学习算法一直以来是机器学习能根据数据学到知识的核心技术.而好的优化算法可以大大提高学习速度,加快算法的收敛速度和效果.本文从浅层模型到深度模型纵览监督学习中常用的优化算法,并指出了每一种优化算法 ...

  4. 机器学习 集成学习篇——python实现Bagging和AdaBOOST算法

    机器学习 集成学习篇--python实现Bagging和AdaBOOST算法 摘要 Bagging算法 Adaboost算法 摘要 本文通过python实现了集成学习中的Bagging和AdaBOOS ...

  5. Sklearn 损失函数如何应用到_15 分钟带你入门 sklearn 与机器学习(分类算法篇)...

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

  6. 新书推荐 |《机器学习:算法视角(原书第2版)》

    新书推荐 <机器学习:算法视角(原书第2版)> 长按二维码 了解及购买 CRC Press机器学习领域畅销教材: 知名媒体推荐的十大机器学习入门教材之一: 新西兰惠灵顿维多利亚大学数学与统 ...

  7. 机器学习第21篇 - 特征递归消除RFE算法 理论

    特征递归消除(RFE, recursive feature elimination) RFE 算法通过增加或移除特定特征变量获得能最大化模型性能的最优组合变量. RFE基本算法 使用所有特征变量训练模 ...

  8. 热烈推荐: A*算法 (启发式搜索的入门篇,必看)转载

    热烈推荐: A*算法 (启发式搜索的入门篇,必看)转载 (2005-10-8 21:56)在搜索式算法中,A*算法算是个分水岭.因为它引入了启发式估价函数,从"瞎搜"转化到了&qu ...

  9. 15 分钟带你入门 sklearn 与机器学习(分类算法篇)

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

最新文章

  1. mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台
  2. ubuntu 安装 Sublime Text 2
  3. php 编译 线程安全,PHP7(zts 线程安全版)编译安装(支持多线程pthreads)
  4. 布隆过滤器(Bloom Filter)的原理和实现
  5. sql多层嵌套别名无效_SQL之复杂查询
  6. 分布式系统以及CAP原理
  7. linux 文件 16进制显示,linux 16进制 产看文件
  8. crypto在web的使用
  9. 计算机专业英语1700+
  10. 一网打尽位图与矢量图
  11. QoS 基础: 什么是QoS, 我真的需要吗?
  12. 【云计算】一文了解裸金属服务器(一)
  13. 如何查询快递单号物流
  14. 即构推出微信引流方案,助力在线教育平台大幅降低获客成本
  15. 清华软院、清华计科、南大计算机、中科院自动化所夏令营保研过程贴
  16. EXCEL复制粘贴特别慢
  17. coreldraw 长方体_用coreldraw 11制作铅笔_coreldraw教程
  18. Android 设置按钮在 下滑页面按钮隐藏,上滑页面按钮显示
  19. 真实生活的记录:我三年的外企生涯(2) 出处:天涯虚拟社区
  20. 华中师范大学计算机入学考试题目及分值,2018秋华师计算机的作业满分.docx

热门文章

  1. 杭电信工计算机专业浙江省排名第几,2017杭州电子科技大学专业排名_杭州电子科技大学专业排行榜(2)...
  2. Python_内置函数之round的幺蛾子
  3. 和平精英微信登录服务器连接失败,和平精英微信登录不了怎么办
  4. 三大巨头遥遥领先!亚马逊云服务领跑亚太第一,阿里微软紧随其后,腾讯谷歌百度进入前六 | 美通社头条...
  5. Python 编程从入门到实践 6-7动手试一试 人
  6. python怎么设计奥运五环_如何用Python中turtle画笔制作奥运五环
  7. 谷歌X最新开源任务驱动的类级别机器人抓取CaTGrasp!
  8. 什么样的女生城府深?
  9. 使用Vue+ElementUI实现的手机验证码校验、倒计时和禁用效果
  10. nrf52 iic使用