机器学习 入门详细解析(一)开发流程\sklearn\k近邻算法\朴素贝叶斯算法\交叉验证

本文介绍了机器学习的基础概念、开发流程和模型分类,重点讲解了sklearn库中的k近邻算法和朴素贝叶斯算法。通过案例展示了如何使用sklearn实现k-近邻算法进行入住位置预测和鸢尾花分类,以及朴素贝叶斯在新闻分类中的应用。同时,讨论了模型评估指标和交叉验证的重要性。

机器学习基础

  • 算法是核心,数据和计算是基础

机器学习开发流程

在这里插入图片描述

机器学习模型是什么

  • 定义:通过一种映射关系将输入值到输出值
    在这里插入图片描述

机器学习算法分类 (监督学习,无监督学习)

  • 监督学习

    • 分类: k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
    • 回归: 线性回归、岭回归
    • 标注: 隐马尔可夫模型 (不做要求)
  • 无监督学习

    • 聚类 k-means
  • 区别

在这里插入图片描述

监督学习

  • 可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。

无监督学习

  • 可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。

分类问题

在这里插入图片描述

  • 分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果;

分类问题的应用

  • 分类在于根据其特性将数据“分门别类”,所以在许多领域都有广泛的应用
  • 在银行业务中,构建一个客户分类模型,按客户按照贷款风险的大小进行分类
  • 图像处理中,分类可以用来检测图像中是否有人脸出现,动物类别等
  • 手写识别中,分类可以用于识别手写的数字
  • 文本分类,这里的文本可以是新闻报道、网页、电子邮件、学术论文

回归问题

在这里插入图片描述

  • 回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。

回归问题的应用

  • 回归在多领域也有广泛的应用

  • 房价预测,根据某地历史房价数据,进行一个预测

  • 金融信息,每日股票走向

sklearn 数据集

数据集划分

  • 机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型

  • 测试数据:在模型检验时使用,用于评估模型是否有效

sklearn 数据集接口介绍

sklearn 数据集划分API

 sklearn.model_selection.train_test_split
sklearn.datasets
	加载获取流行数据集
	datasets.load_*()
		获取小规模数据集,数据包含在datasets里

datasets.fetch_*(data_home=None)
	获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/


获取数据集返回的类型

load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)

data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组

target:标签数组,是 n_samples 的一维 numpy.ndarray 数组

DESCR:数据描述

feature_names:特征名,新闻数据,手写数字、回归数据集没有

target_names:标签名,回归数据集没有

转化器和预估器

转换器

想一下之前做的特征工程的步骤?
1、实例化 (实例化的是一个转换器类(Transformer)) 
2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)

在这里插入图片描述

  • 转换器的作用:进行特征工程的父类(Transformer)调用:fit_transform来完成数据的处理

  • fit_transform = fit + transform

  • Fit(): Method calculates the parameters μ and σ and saves them as internal objects
    # 简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。
    
  • transform(): Method using these calculated parameters apply the transformation to a particular dataset.
    # 解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。
    
  • fit_transform(): joins the fit() and transform() method for transformation of dataset.
    # 解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。
    # transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
    

实例化过程中需要注意的点,训练集x_train使用fit_transform,而测试集只需要使用transform,不用fit(因为它需要统一方差,均值这些标准)

估计器

  • 在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API
  • 前面转换器我们有使用fit_transform和transform,而在预估器这里,我们只使用fit,而不用transform。
  • 模型评估:
    • 方法1:直接比对真实值和预测值 y_predict = estimator.predict(x_test)
    • 方法2:计算准确率,计算分数 accuracy = estimator.score(x_test, y_test)

1、用于分类的估计器:

  1. sklearn.neighbors k-近邻算法
  2. sklearn.naive_bayes 贝叶斯
  3. sklearn.linear_model.LogisticRegression 逻辑回归

2、用于回归的估计器:

  1. sklearn.linear_model.LinearRegression 线性回归
  2. sklearn.linear_model.Ridge 岭回归

估计器的工作流程

在这里插入图片描述

小结

传统机器学习算法流程

在这里插入图片描述

分类算法-k近邻算法

在这里插入图片描述

  • 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

  • 两个样本的距离可以通过如下公式计算,又叫欧式距离

    • 比如说,a(a1,a2,a3),b(b1,b2,b3)

    • √ ( ( 𝑎 1 − 𝑏 1 ) 2 + ( 𝑎 2 − 𝑏 2 ) 2 + ( 𝑎 3 − 𝑏 3 ) 2 ) √((𝑎1−𝑏1)^2+(𝑎2−𝑏2)^2+(𝑎3−𝑏3)^2 ) ((a1b1)2+(a2b2)2+(a3b3)2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值