python培训Day2
python学习Day2
一、机器学习原理
1.1、 什么是机器学习
是研究和模拟人学习的过程
1.2、机器学习vs.人类学习
- 科学
- 认知科学
- 形而上
- 技术
- 认知计算
- 形而下
- 研究对象
- 智慧(脑智和心智)
- 大数据
二、数据挖掘
2.1、大数据来源
- 自然大数据
- 生命大数据
- 社交大数据
2.2、数据挖掘vs.机器学习
2.3、机器学习vs.其他科学
2.4、什么是大数据
4V理论
- 海量的数据规模(volume)
- 快速的数据流动和动态的数据体系(velocity)
- 多样的数据类型(variety)
- 巨大的数据价值(value)
2.5、深度学习
- 机器学习的一个分支,特征学习
2.6(重点)归纳学习的分类
- 监督学习(Supervised Learning):是从标记(Label)或者说标注的训练数据(样本)中来进行推断的己去学习任务。如分类、回归。
- 非监督学习(Unsupervised Learning):在未标记的数据中,试图找到隐藏的结构。如聚类、密度估计等。
- 强化学习(Reinforcement Learning):强调如何基于环境而行动,以取得最大化的预期利益。
- 半监督学习(Semi-supervised Learning):通过对少量带标记的样本和大量未标记的样本的学习,建立模型用于预测未见样本的标记。
三、机器学习的基本过程
3.1、例子:天气预报(有监督、二分类问题(是、否))
- 目标:预测明天北京会不会下雨
- 数据:过去十年北京每一天的天气数据
- 是否下雨:是、否
- 前一天傍晚18点的气温、相对湿度、风向等(特征)
- 某条数据<18,20,东,15,80,是>
- 训练:学习得到规律(模型)
- 预测:给定特征,预测明天是否下雨
3.2、机器学习的关键问题
- 表示:如何表示数据样本
- 通常用一个向量表示一个样本,选择特征是关键
- 训练:如何找出规律【模型+策略+算法】
- 选择题,给你N各候选的模型让你选【模型】
- 确定选择的标准【策略】
- 如何快速选择最好的模型【算法】
- 测试:如何快速根据找到的规律进行预测
3.2.1、如何表示样本?
- 向量表示法
- 图表法
3.2.2、如何找出规律?
- 模型:线性函数(特征值加权)
- 策略:最小损失函数(误差平方和)
- 算法: 梯度下降法
- 例子:房价预测
3.2.3、根据找到的规律进行预测
- 打分,根据分数作判别
四、向量空间模型及文本向量
4.1、课前思考
- 如何利用向量空间模型进行论文查重?
- 如何利用向量空间模型进行代码查重?
4.2、向量空间模型
4.2.1、向量
- 既有大小又有方向
- 一个特征代表一个维度
- 向量的运算:加、减、倍数、内积(两两相乘并相加)
- 欧式距离dist(x向量,y向量)(绝对距离)和夹角余弦(判断向量的相似度)
4.2.2、向量空间模型
- 每篇文章(或每个查询)都可以转化未一个向量,于是文档之间或文档和查询之间的相似度可以通过向量之间的距离来计算
4.2.3、文档-词项矩阵(Doc-Term Matrix)
- n篇文档,m个词汇构成矩阵A
m*n
,每列可以看成每篇文档的向量表示,同时,每行也可以看成词项的向量表示。
4.2.4、一个例子
- 查询q:(<2016,1>,<世界杯,2>)
- 文档d
1
:(<2016,1>,<世界杯,3>,<德国,1>,<举行,1>) - 文档d
2
:(<2002,1>,<世界杯,2>,<韩国,1>,<日本,1>,<举行,1>)
- 查询和文档进行向量相似度计算:
- 采用卷积:
- 文档d
1
与q的内积:1 * 1+3 * 2=7 - 文档d
2
与q的内积:2 * 2=4 - 夹角余弦:
4.3、VSM中三个关键问题
- 词项的选择:选择什么样的单位作为向量的每一维
- 权重计算:即计算每篇文档中每个词项的权重,即得到每一微大小
- 相似度计算:计算向量之间的相似度
4.3.1、词项的选择
- 文档内容的特征
- 词项的粒度:可以是字、词、短语、N-gram或者某种语义单元
- N-gram举例(N=2):我是中国人——我是 是中 中国 国人
- 降维:VSM中向量的维数很大时,往往也引进了很多噪音。需要降维。
4.3.2、权重计算
- 布尔权重:词项i在文档j中的权重a
ij
=0 or 1 - TF权重:TF(Term Frequency)是词项在文档中出现的次数,表示的是词项是在文档内的代表性。权重a
ij
=TFij
(原始TF)或者归一化后的TF值 - IDF权重:词项的区分度,越普遍越区分度低
4.3.3、相似度计算
五、特征类型及规范化处理
- 标称型(nominal)特征:一些符号或事物的名称。每个值代表某种类别、编码或状态。(有限)
- 二元型(binary)特征:标称型的一种特殊特征,只有两个类别或状态
5.1、特征归一化
- 归一化(Normalization):特征值在同一尺度
- 归一方法:高斯归一法(Gaussian),最大最小法(Min,Max)
# 最大最小法
#打印数据表格
import pandas
# 绘图
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
f = open("E:\\d1.csv", mode="r", encoding="utf8")
data=pandas.read_csv(f)
df_no=np.array(data['1'])
plt.hist(df_no)
d_min=data['1'].min()
d_max=data['1'].max()
df=[]
for i in data['1']:
df_value = (i - d_min) / (d_max - d_min)
df.append(df_value)
#x为数据,y为频次
plt.hist(df)
f.close()