数据降维
1.特征选择
2.主成分分析
数据降维
1.特征选择
2.主成分分析
MinMaxScaler(feature_range=())
feature_range 可以指定在一定的数值范围内
tf idf
tf:term frenquency词的频率 出现的次数
idf:inverse document frequency 逆文档频率
log(总文档数量/该词出现的文档数量)
重要性程度
countvectorizer没有参数
文本都是放在列表里面的可迭代对象
性能瓶颈,读取速度
格式不太符合机器学习要求数据的格式
可用数据集:
Kaggle
UCI
scikit-learn
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
1. 解放生产力
2.解决专业问题
3.提供社会便利
让机器学习程序替换手动步骤,减少企业的成本,也提高企业的效率
# 非监督学习
## 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