机器学习理论方法系统概述

写在前面:对于机器学习和深度学习,明白原理是非常重要的,只知道怎样去用那么你只能成为一个调参侠,并且在面试的时候会被问到原理。而且,要建模,肯定要知道原理。总而言之,选择了机器学习和深度学习基本就是做研究的嘛,做研究怎么能不知道原理呢?

机器学习和深度学习能做什么

传统预测、图像识别、自然语言处理

什么是机器学习

数据→模型→预测
从历史数据中获得规律,这些历史数据是怎样的格式呢?
数据格式:数据集
数据集构成:特征值+目标值

机器学习算法分类

目标值是类别——分类问题
目标值是连续性数据——回归问题
没有目标值——无监督学习

机器学习开发流程

1、数据处理
2、特征工程(将数据处理成更能被机器学习算法使用的数据)
3、算法训练——得到模型
4、模型评估

学习框架和资料

1、算法是核心,数据和计算是基础
2、找准定位
3、怎么做?
    1、书籍:
       机器学习—周志华“西瓜书”
       统计学习算法—李航
       深度学习“花书”
    2、库和框架
    机器学习框架:scikit-learn
    深度学习框架:pytorch  tensorflow  theano  caffe2  chainer

数据集

学习阶段可用数据集

  1、scikit-learn
  2、kaggle
  3、UCI

scikit-learn库介绍:

  Python语言的机器学习工具
  包括许多知名的机器学习算法的实现
  文档完善、容易上手、丰富的API
  目前稳定版本0.24.1
  安装:pip3 install Scikit-learn==0.24.1
  查看是否安装成功:import sklearn
  注:安装需要numpy、scipy等库
  sklearn包含的内容:分类、回归、聚类、降维、模型选择、特征工程

sklearn数据集使用

  sklearn.datasets
      load_*     获取小规模数据集
      fetch_*    获取大规模数据集

查看数据集的代码如下:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
    """
    sklearn数据集使用
    """
    #获取数据集
    iris=load_iris()
    print("鸢尾花数据集:\n",iris)
    print("查看数据集描述:\n",iris["DESCR"])
    print("查看特征值的名字:\n",iris.feature_names)
    print("查看特征值:\n",iris.data,iris.data.shape)

    #数据集划分
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
    #查看测试集的特征值
    print("测试集的特征值:\n",x_test,x_test.shape)

    return None
if __name__=="__main__":
    datasets_demo()

特征工程

业界广泛流传:数据特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好作用的过程。会直接影响机器学习的效果。

怎么做特征工程

sklearn—— 特征工程
pandas ——数据清洗、数据处理

特征工程包含内容:

 1、特征抽取/提取
机器学习算法——统计方法——数学公式
(数学公式无法识别字符串)
文本类型转换为→数值
类型转换为→数值
图像特征提取(深度学习)

特征提取API:

   sklearn.feature_extraction
2、特征预处理
   归一化、标准化
   归一化缺点:计算公式主要依靠最大值和最小值,一旦出现异常值,将对整个数据有很大影响
   标准化:通过对原始数据进行变换,将数据变换到均值为0,标准差为1范围内:
   公式:

在这里插入图片描述

 3、数据降维   
 ndarray
    维数:嵌套的层数
    0维:标量
    1维:向量
    2维:矩阵
    3维:多个2维数组嵌套而成
    n维......
    降维:降低的对象是2维数组,此处的降维是降低特征的个数(列数)。得到一组不相关主变量的过程。
    特征与特征之间不想关。
    降维方法两种:
    1、特征选择
    2、主成分分析
    API:sklearn.decomposition.PCA(n_components=None)
    n_components  是小数:表示保留百分之多少的信息。整数:表示减少到多少特征

决策树
结构:if-else结构
思想:如何高效的进行决策。重点在特征的先后顺序。
(相比于KNN算法,决策树更适合用于数据量大的情况)
优点:可视化,可解释能力强
缺点:容易过拟合

随机森林
什么是集成学习方法:通过建立几个模型组合来解决单一预测问题。生成多个分类器,各自独立地学习和做出预测,最后结合成组合预测,因此优于任何一个单分类做出的预测。
随机森林:包含多个决策树的分类器。最终结果由多个决策树的众数决定。
随机:训练集随机和特征随机
训练集随机:bootstrap (随机有放回抽样)

线性回归
现象:欠拟合和过拟合
线性关系和线性模型要区分。
目标:求模型参数,能使得预测准确。

损失函数
优化损失:优化方法:
正规方程:天才,直接求解(适合数据量小的情况)
梯度下降:勤奋,试错,改进(通用性较强)

案例:波士顿房价预测:
1)获取数据集
2)划分数据集
3)特征工程:无量纲化(标准化)
4)预估器工程:fit()–模型
coef_intercept_
5)模型评估

欠拟合和过拟合

**欠拟合:**学习到的特征太少,导致区分标准太粗糙,不能正确识别。(在训练集和测试集都不能很好地拟合数据,数据量太少)
**过拟合:**学习的特征过多,导致筛掉了某些特征,使得结果不准确。(在训练集效果很好,但是在测试集效果不好)
在这里插入图片描述

在这里插入图片描述
解决办法:
在这里插入图片描述
左边的过于简单,容易欠拟合,右边的拟合效果很准确但是泛化能力差,容易过拟合,因此中间的效果是最好的。
过拟合解决方法:正则化:尽量减少高次项特征的影响。
L1正则化:损失函数+λ惩罚项(参数的绝对值)————LASSO
L2正则化:使得 某些参数接近于0,削弱某些特征的影响。损失函数+λ惩罚项(参数的平方)——————Ridge—岭回归

岭回归——带有L2正则化的线性回归
逻辑回归——进行分类(是一种分类算法,二分类
线性回归的输出 就是 逻辑回归 的 输入。
原理图:
在这里插入图片描述
分类的评估方法:精确率与召回率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值