美文网首页我爱编程
机器学习实战

机器学习实战

作者: 奉先 | 来源:发表于2018-03-28 17:02 被阅读19次

读书日期: 20180328 作者:Peter Harrington [美国] 出版社:Manning

1.引言:

1.基本介绍:

机器学习用以彰显数据背后的真实含义。简单地说,机器学习将无序的数据转化为有用的信息。
下面介绍一些机器学习中常用的术语:
1.特征/属性:体重、翼展、脚蹼、后背颜色,测量的这4种值是特征,也叫属性。
2.实例:表中的每一行都是具有相关特征的实例。
3.目标变量:通过“体重、翼展、脚蹼、后背颜色”这4个测量值来推测,这只鸟的分类,那么“种属”就是目标变量。
4.分类:根据测量值推测,某只鸟属于哪个种类,这个过程是分类。
5.训练集:为算法输入大量已经分类的数据作为算法的训练集。
6.训练样本:下表是一个包含6个训练样本的训练集。


分类数据

2.机器学习的主要任务:

机器学习包含2个主要的任务,分类和回归
分类:将实例数据划分到合适的分类中。
回归:预测数值型数据。
分类和回归属于监督学习(因为这类算法必须知道预测什么,即目标变量的分类信息)。那么对应的无监督学习是指数据没有类别信息,也不给定目标值。在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程称为聚类

3.Python numpy模块安装:

使用numpy模块进行机器学习,需要先安装模块,官方的文档如下(3.x版本):https://docs.python.org/3/installing/index.html
首先,我使用的python是3.6.3版本,可以根据自己的版本查看相应的文档。使用下边语句安装最新的numpy:

python -m pip install numpy

这样,我们就可以在python的交互式命令行中使用numpy了。random.rat(4,4)生成一个随机的44数组;mat()可以将数组转化成矩阵;matrix.I 矩阵的.I方法可以求矩阵的逆矩阵;invrandMatrandMat实现矩阵的乘法。

>>> from numpy import *
>>> random.rand(4,4)
array([[6.73978444e-01, 2.99808800e-01, 7.43641576e-01, 4.07781388e-01],
       [7.53026681e-01, 1.83408865e-01, 4.74676362e-01, 5.37249607e-01],
       [9.59585572e-02, 2.75841536e-01, 6.67686107e-02, 3.83703293e-01],
       [8.88914530e-02, 9.17875466e-01, 2.56891101e-04, 2.04974425e-01]])
>>> randMat = mat(random.rand(4,4))
>>> randMat
matrix([[0.48243217, 0.51042373, 0.34005549, 0.12387821],
        [0.13935257, 0.59590073, 0.36599379, 0.05547555],
        [0.33131112, 0.56370196, 0.35442827, 0.85224919],
        [0.11958382, 0.40675776, 0.25334256, 0.97666055]])
>>> invrandMat=randMat.I
>>> invrandMat
matrix([[  -1.85456225,   -1.92062274,    9.34598511,   -7.81112823],
        [ -38.57802488,    4.70274046,   76.67742274,  -62.28385262],
        [  63.5465415 ,   -4.09300354, -128.43853768,  104.24980239],
        [  -0.18978663,   -0.66171278,    0.23773163,    0.87810726]])
>>> invrandMat*randMat
matrix([[ 1.00000000e+00,  7.82763747e-15,  5.06171312e-15,
          1.07520330e-14],
        [-8.46064482e-15,  1.00000000e+00, -7.15536314e-15,
         -8.84196109e-15],
        [ 1.26870039e-14,  2.28427698e-14,  1.00000000e+00,
          2.39549673e-14],
        [ 2.18783853e-18,  2.08091434e-17,  2.79508969e-17,
          1.00000000e+00]])

数学知识补充:
1.逆矩阵:设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。

其中的E代表单位矩阵,定义如下:
单位矩阵
就是对角线是都是1,其他的都是0的矩阵
比如
1 0 0
0 1 0
0 0 1

2.矩阵加减法:矩阵的加减法非常简单,一个同阶矩阵,只要对应的元素做加减法即可。
3.矩阵乘法:

2. k-近邻算法(kNN算法):

1.算法介绍

k-近邻算法简单地说,采用测量不同特征值之间的距离的方法来进行分类。算法原理如下:首先,输入一些带有标签值(目标值)的训练样本;然后对于一条未分类(未找到归属标签)的数据,计算该条记录(未标签)的特征值与每一个训练样本的特征值之间的距离(具体的难点,如何计算距离);下面找到与该条数据距离最近的k个样本(一般k小于20), 这k个样本中出现次数最多的标签,就是这条数据应该分类的标签。

算法优缺点和使用场景:
优点:准确度高、可以忽略异常数据、无数据假定输入
缺点:计算复杂度高、空间复杂度高
适用范围:数值型和标称型

相关文章

  • K-Means算法

    参考链接:1. python机器学习实战之K均值聚类2. 机器学习实战之K-Means算法3.《机器学习实战》(十...

  • 机器学习实战中文版 pdf高清+源代码

    机器学习实战中文版 pdf高清+源代码 《机器学习实战》介绍并实现机器学习的主流算法,面向日常任务的高效实战内容,...

  • 机器学习实战-knn

    机器学习实战笔记-knn算法实战 本文内容源于《机器学习实战》一书,主要介绍了knn(k-nearest neig...

  • 2019-03-29

    <<机器学习实战>>--策略梯度

  • 思维导图

    《机器学习实战》思维导图 过完书后可以查漏补缺,温故知新。 《机器学习实战》读书笔记

  • 支持向量机(SVM)入门理解与推导

    首先推荐:机器学习实战教程(八):支持向量机原理篇之手撕线性SVM机器学习实战教程(九):支持向量机实战篇之再撕非...

  • 机器学习实战-数据探索(变量变换、生成)

    《机器学习实战-数据探索(1、变量识别;2、单变量分析;3、双变量分析)》 机器学习实战-数据探索(缺失值处理) ...

  • 【机器学习实战】Logistic回归(一)

    【机器学习实战】Logistic回归 全部程序均是依照《机器学习实战》书写,然后进行了一些修改(顺便巩固pytho...

  • 【好书推荐】机器学习书单

    今天推荐的图书专注机器学习主题,一共7本,都是经过实践检验的好书——《机器学习》《图解机器学习》《机器学习实战》《...

  • 2019-03-31

    《机器学习实战》--增強学习(代码未经验证)

网友评论

    本文标题:机器学习实战

    本文链接:https://www.haomeiwen.com/subject/xgeycftx.html