1.缩进组织程序结构
2.区分大小写
3.多行注释
1.缩进组织程序结构
2.区分大小写
3.多行注释
python中方法是对象,函数是对象,一切都是对象
import time
time.time()
totalMinutes//
整数
十进制
二进制0B 0 1
八进制0O 0 1 2 3 4 5 6 7
十六进制0X 0 1 2 3 4 5 6 7 8 9 a b c d e f
自动转型
整数和浮点型
开发环境IDE:解释器的外挂
quit()
2. 终端程序执行:ctrl+c(循环的时候)
# 非监督学习
## k-means (聚类)
> 聚类做在分类之前
# 分类算法:逻辑回归
> 逻辑回归:线性回归的式子作为输入,解决二分类问题, 也可以得出概率值
## 1、应用场景(基础分类问题:二分类)
- 广告点击率
- 是否为垃圾邮件
- 是否患病
- 金融诈骗
- 虚假账号
## 2、广告点击
- 点击
- 没点击
## 3、逻辑回归的输入与线性回归相同
# 模型的保存和加载
from sklearn.externals import joblib
## 过拟合与欠拟合
> 问题:训练集数据训练得很好,误差也不大,在测试集上有问题 原因:学习特征太少,导致区分标准太粗糙,不能准确识别处目标
- 欠拟合:特征太少
- 过拟合:特征过多
特征选择:
- 过滤式:低方差特征
- 嵌入式: 正则化,决策树,神经网络
## 2、线性回归策略
> 预测结果与真实值有误差
> 回归:迭代的算法,知道误差,不断减小误差,
### 损失函数
- 最小二乘法之梯度下降
scikit-learn:
- 优点:封装好,建立模型简单,预测简单
- 缺点:算法的过程,有些参数都在算法API内部优化
## 集成学习方法-随机森林
### 集成学习方法
> 通过建立几个模型组合来解决单一预测问题。工作原理是生成多个分类器/模型,各自独立地学习和做出预测,这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。
### 随机森林
> 在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。多个决策树来投票
### 随机森林建立多个决策树的过程
# 分类算法:决策树、随机森林
## 1、认识决策树
### 决策树的划分
## 2、信息的度量和作用
> 信息的单位:比特
### 信息熵
> 信息和消除不确定性xiang'guan
# 模型选择与调优
## 1、交叉验证
> 为了让被评估的模型更加准确可信\
> 将训练集再分为训练集和验证集 将所有数据分成n等分
##2、网格搜索:调参数
K-近邻:超参数
> 通常情况下,很多参数需要手动指定,如k值,这种叫超参数。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型
# 分类模型的评估
> estimator.score()
- 一般最常见使用的是准确率,即预测结果正确的百分比
## 精确率和召回率
> 预测结果为正例样本中真实为正例的比例(查得准)
> 召回率:真实为正例的样本中预测结果为整理的比例(查的全,对正样本的区分能力)
# 分类算法-朴素贝叶斯算法
## 一、概率基础
> 概率被定义为一件事件发生的可能性
## 二、联合概率和条件概率
> 联合概率:包含多个条件,且所有条件同时成立的概率 p(a,b)=p(a)xp(b)
> 条件概率:就是事件a在另外一个事件b已经发生条件下的发生概率 记作p(a|b), p(a1,a2|b)=p(a1|b)p(a2|b), 次条件概率的成立,是由于a1,a2相互独立的结果
### 例题
## 三、朴素贝叶斯 : 特征之间需要相互独立
### 文档分类
- p(科技|文档) 文档1: 词1,词2,词3
- p(娱乐|文档) 文档2:词a,词b,词c
### 贝叶斯公式
# 一、分类算法-K-近邻算法
> 通过邻居判断类别
## 一、定义
> 如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
> 来源:KNN算法,一种分类算法
## 二、计算距离公式:欧式距离
> 相似的样本,特征之间的值都是相近的。
> 计算特征距离时,应该进行标准化。
## 三、算法API
## 四、k的取值
> k的取值会影响k的结果
## 五、实例:预测入住位置。
## 转换器与估计器
> 引入:实例化是一个转换器类,调用fit_transfrom
# 数据的划分和介绍
## 1、sklearn 数据集
### 数据集划分
- 训练集 占大多数 70% 80% 75% 构建模型
- 测试集 30% 20% 25% 用于评估模型是否有效
sklearn.model_selection.train_test_split
## 机器学习算法分类以及开发流程
> 算法是核心,数据和计算是基础
> 找准定位,算法设计是算法工程师在做,我们要分析数据,分析业务,应用常见算法,特征工程,调参数,优化
- 学会分析问题,用算法解决问题
- 掌握算法基本思想
- 利用库和框架解决问题
### 算法分类
1、数据类型
- 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,不能再细分,也不能进一步地提高精确度。
- 连续型数据:可以在某个范围内取任意数,即变量的取值可以是连续的,如长度时间质量值等。通常是非整数,含有小数部分。
2、 算法分类
1) 监督学习(预测)特征值+目标值
- 分类 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
- 回归 线性回归 岭回归
- 标注 隐马尔科夫模型 不做要求
2) 无监督学习 特征值无标签,无标准答案
- 聚类 k-means
> 分类:目标值离散型 回归:目标值连续型
> 分类概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果。
> 应用:银行业务,图像处理,手写识别,文本分类
例子:
1、明天天气多少度:回归
2、明天天气是阴、晴还是雨:分类
3、人脸年龄预测:回归
4、人脸识别:分类
## 数据降维
> 维度:特征的数量
> 为什么要降维:删除一些不必要的特征
- 特征选择
- 主成分分析
### 特征选择
特征选择的原因
- 冗余:部分特征相关度高,容易消耗计算性能
- 噪声:部分特征对预测结果有影响
特征选择的主要方法
- filter 过滤式 variance threshold
- embedded 嵌入式 正则化、决策树
- wrapper 包裹式
### 过滤式特征选择
sklearn.feature_selection.VarianceThreshold
> 特征之间容易相关 对于高纬度数据来说
n_components:
- 小数 百分比(0~1)保留多少信息 一般取90~95%
- 整数 减少到的特征数量
一般使用小数