J_\theta=-l(\theta)
J_\theta=-l(\theta)
### logistic函数:通过回归进行分类
### logistic回归的过程
- 1) 找到一个合适的预测函数,一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程是非常关键的,需要对数据有一定的了解和分析,知道或者猜测预测函数的大概形式,比如是线性函数还是非线性函数。
- 2)构造一个loss损失函数,该函数表示预测的输出与训练数据类别之间的偏差。可以是二者之间的差或者是其他的形式。综合考虑所有训练数据的损失,将loss求和或者求平均,记为J(theta)函数,表示所有训练数据预测值与实际类别的偏差。
- 3)显然,J函数的值越小表示预测函数越准确。所以这一步需要做的是找到J函数的最小值。找到最小值有不同的方法。如梯度下降法。
# 线性回归
## 方程y=Ax
## 最小二乘法(平方)Least Squares Method
\sum_(n=1)^N(y-y_i)^2
w\hat=(\pmb{X^T}\pmb{X})^-1\pmb{X^T}y
> 让平方误差最小
集成算法
- bagging:套袋法
- boosting:提升算法:增大错误样本的权重同时减小正确样本的权重。与bagging对比boosting可以同时降低偏差和方差,而bagging只能降低模型的方差。但boosting更加容易过拟合。
- 随机森林:应用bagging和多颗决策树
- 梯度提升树
- adaboost:
> adaboost算法与boost算法不同,它是使用整个训练集来训练弱学习器,其中训练样本在每次迭代的过程中都会重新被赋予一个权重,在上一个弱学习器错误的基础熵进行学习来构建一个更加强大的分类器。
# sklearn学习
## 介绍
- 数据分析和数据挖掘
- 用python进行机器学习
> 数据分析和数据挖掘==机器学习==人工智能
## 分类
- classification
- regression
- clustring
- dimensionality reduction
- model selection
- preprocessing
控制流程:顺序、条件、循环
# 回归
## 一、线性回归
- 离散型数据:分类
- 连续型数据:回归
### y=kx+b
### 多个变量的情况
# 数据清洗和特征选择
## fuzzeywuzzy模糊查询
- 任何一次插入,修改和删除算作一次过程+1
# 非监督学习
## 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