wuyage

机器学习实践-开篇

0
阅读(2454)

    过去的2016年,发生的一件大事是阿尔法狗战胜李世石,这一事件进一步的将人工智能,机器学习带入到人们的视野中。 机器学习这么火,我也想学一下。废话不多说,本人买了一本《机器学习实战》书,豆瓣连接: https://book.douban.com/subject/24703171/ ,计划在2017年好好研究一番。

   看完了第一章做了笔记,

blob.png

何谓机器学习?

 多学科

  计算机科学

  工程技术

  统计学

 简单的说,机器学习是把无序的数据转换为有用的的信息

 对于某类任务 T 和性能度量 P, 如果一个计算机程序在 T 上以 P 衡量的 性能随着经验 E 而自我完善,那么我们称这个计算机程序在从经验 E 学习。

机器学习的分类及算法

 监督学习

  分类

   k-近邻

   朴素贝叶斯

   SVM

   决策树

  回归

   线性回归

   局部加权线性回归

   Ridge回归

   Lasso最小回归系数估计

 无监督学习

  聚类

   k-means

   DBSCAN

  密度估计

   最大期望算法

   Parzen窗设计

关键术语

 专家系统

 特征(属性)

 分类

 训练集、训练样本

 目标变量

  机器学习算法的预测结果

  类别(分类问题中的目标变量)

 测试集

 知识表示

  表示

   规则集

   概率分布

如何选择合适的算法

 考虑

  目的

   预测目标变量的值

    监督学习

     离散:分类

     连续:回归

   否则

    无监督学习

     离散:聚类

     还需估计数据与每个分组的相似程度:密度估计

  数据

   特征值

    离散/连续

    是否存在缺失的值,为何

    是否存在异常值,频率

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

 收集数据

 准备输入数据

  数据格式

 分析输入数据

  检查

   空值

   异常值

  分析是否可以识别出模式

 训练算法

  无监督算法不需要

 测试算法

  监督算法

   评估算法的目标变量值

  无监督算法

   其他评测手段检验算法成功率

 使用算法

Python语言的优势

 优势

  语法清晰

   可执行伪代码

  易于操作纯文本文件

  使用广泛,开发文档多

   模块

    SciPy和NumPy

    Matplotlib

    Pylab

 缺点

  性能

   C++ Boost库

   Cython和PyPy

NumPy函数库基础

 命令

  random.rand(4, 4)

   生成4×4随机数组

  mat()

   数组转化为矩阵

  .I

   求逆

  *

   矩阵乘法

  eye()

   单位阵

 NumPy中矩阵与数组的区别

  可能结果不同

  matrix与matlab的matrices等价


机器学习基础.rar


另外说下win7 64bit Python+Numpy+Scipy+Matplotlib 安装方法:

1)先安装Python,默认安装路径

python-2.7.9.amd64.rar


2)再安装Numpy,NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

numpy-MKL-1.8.0.win-amd64-py2.7.rar


3)之后就可以使用了Numpy了

>>> from numpy import *   

上述命令将NumPy函数库中的所有模块引入到当前的命名空间


>>> random.rand(4,4)

上述命令构造了一个4*4的随机数组

array([[ 0.15693841,  0.37749084,  0.19183268,  0.7386663 ],

       [ 0.18912912,  0.92643707,  0.51435051,  0.42902081],

       [ 0.74647494,  0.25516188,  0.10116776,  0.75080336],

       [ 0.33784065,  0.78023326,  0.26876447,  0.94276886]])

关于Numpy中数组和矩阵的区别,可以参考:

http://blog.csdn.net/vincentlipan/article/details/20717163

http://stackoverflow.com/questions/4151128/what-are-the-differences-between-numpy-arrays-and-matrices-which-one-should-i-u


4)Scipy 安装包如下,

SciPy是一个开源的Python算法库和数学工具包。

SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

scipy_0.14.0.win_amd64_py2.7.rar


5)matplotlib 安装包如下,matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。

matplotlib-1.2.0.win32&win64-py2.7.zip


另外本书的源代码如下:

machinelearninginaction code.7z

参考:

1)https://zh.wikipedia.org/wiki/NumPy

2)http://m.blog.csdn.net/article/details?id=52202561

3)http://www.pythoner.com/238.html

4)https://www.zhihu.com/question/22094277

5)https://www.zhihu.com/question/19767007

6)http://book.51cto.com/art/201401/426520.htm

7)http://blog.csdn.net/luo123n/article/details/10027557

8)http://www.cnblogs.com/eastmount/p/5052871.html