机器学习machine learning

1. 概念

机器学习是从数据中提取知识。涉及统计学和人工智能,也被称为预测分析或统计学习。

应用领域非常广泛,用户习惯预测,个性推荐,分析DNA序列等等。

机器学习优势是将决策过程自动化,需要涉及较好的算法。如果决策过程从已知示例泛化得出,这种叫监督学习(supervised learning),就是输入包括预期输出和待处理输入,算法给出输出结果。无监督学习(unsupervised learning algorithm),输入只有待处理输入。

无论监督学习还是无监督学习,将输入数据表征为计算机可以处理的形式都非常重要。例如,将数据想象成二维表格。你要处理的每一个数据点对应表格中一行记录,比如某学生,学生姓名,年龄,专业等等;用每个像素的灰度值描述肿瘤图像,或者大小、形状和颜色。

在机器学习中,每个实体或每一行称为一个样本(sample)或数据点,每一列被称为特征(feature)。如何构建良好的数据表征,被称为特征提取(feature extraction)或特征工程(feature engineering)。

2. 数据处理(机器学习)基本过程OCAI

机器学习和数据分析本质上都是迭代过程,由数据驱动分析。

对象(Objects):我想解决问题是什么?问题的对象是谁?

采集(Collectiong):收集到的数据能够回答这个问题吗?

分析(Analysis):用哪种方法分析我的问题,选择哪类机器学习算法?这些特征能否正确预测?

呈现(Interpretation):如何表述机器学习结果是有效的?对解决其它相关问题的影响?

3. 机器学习利器——Python

Python具有通用变成语言的强大功能,具有特定领域脚本语言的易用性,如Matlab或R。具有进行数据读取、统计、自然语言处理、图像处理、可视化等各种功能库。为数据科学家提供丰富的工具库。

4. 机器学习库scikit-learn

scikit-learn项目开源免费使用,包含众多机器学习算法,详细文档网址:http://scikit-learn.org/stable/documentation

4.1 安装scikit-learn

scikit-learn依赖包:NumPy和SciPy。进行绘图和交互开发,还需安装matplotlib、IPython和Jupyter Notebook,可通过pip install 的方式安装。

 pip install numpy scipy matplotlib ipython scikit-learn pandas
  • Jupyter Notebook

    浏览器运行代码的交互环境

  • NumPy

    Python科学计算基础包之一。功能包括多为数组、高级数学函数,以及伪随机数生成器。在scikit-learn中,NumPy数组是基本数据结构。scikit-leearn接受NumPy数组格式的数据。待处理的数据都必须转换成NumPy数组。NumPy的核心功能是ndarray类,即多维(n维)数组。数组的所有元素必须是同一类型。举例

import numpy as np
DataX = np.array([[3,6,9],[4,7,0]])
print("Data:\n{}".format(DataX))

结果:

x:
[[3 6 9]
 [4 7 9]]
  • Scipy

SciPy是Python中科学计算的函数集合。具有线性代数高级程序、数学函数优化、信号处理、

特殊数学函数和统计分布等功能。scikit-learn利用SciPy函数集合实现算法。用SciPy中scipy.sparse可以给出稀疏矩阵(sparse matrice)。示例如下:

from scipy import sparse
eye = np.eye(4)
print("NumPy array:\n{}".format(eye))

结果:

NumPy array:
[[ 1. 0. 0. 0.]
 [ 0. 1. 0. 0.]
 [ 0. 0. 1. 0.]
 [ 0. 0. 0. 1.]]
  • matplotlib

Python中主要科学绘图库,如折线图、直方图、散点图等。在Jupyter Notebook中,可以使用%matplotlib notebook和%matplotlib inline命令,在浏览器中现实图像。

%matplotlib inline
import matplotlib.pyplot as plt
# 在-10和10之间⽣成⼀个数列,共100个数
x = np.linspace(-10, 10, 100)
# ⽤正弦函数创建第⼆个数组
y = np.sin(x)
# plot函数绘制⼀个数组关于另⼀个数组的折线图
plt.plot(x, y, marker="x")

  • pandas

处理和分析数据的库。它基于一种叫DataFrame的数据结构,模仿R语言中DataFrame。类似于Excel表格,包含大量修改表格和操作表格的方法,可以项SQL一样对表格进行查询和连接。与NumPy要求数组中所有元素数据类型完全一致,与NumPy不同的是,pandas允许每一列数据类型不同,可以从许多文件格式和数据库中提取数据。可以利用字典创建数据集。

import pandas as pd
from IPython.display import display
# 创建关于⼈的简单数据集
data = {'Name': ["John", "Anna", "Peter", "Linda"], 'Location' : ["New York", "Paris","Berlin", "London"], 'Age' : [24, 13, 53, 33] }
data_pandas = pd.DataFrame(data)
# IPython.display可以在Jupyter Notebook中打印出“美观的”DataFrame
display(data_pandas)

注:本文内容建议使用Jupyter Notebook实现

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值