机器学习实现过程及步骤

 文章目录


前言

        随着人工智能的不断发展,机器学习这门技术也越来越重要,它可以应用很多领域,金融、银行、医药等等,本文就介绍了机器学习的基础内容。


一、机器学习是什么?

        机器学习是一种生成规则,发现规则,来帮助我们预测、判断分析和解决问题的技术。

例如:

        机器学习可以干什么:对电子商务的综合查询、经济分析等;统计客户的需求趋势并预测未来我们想掌握的问题;以及对患病几率的预测;恶意域名检测;房价预测等等。

        机器学习分为监督学习和非监督学习,监督学习又分为分类问题和回归问题。

        监督学习是:监督学习是它从过去的数据中学习,并将学习结果应用到未来。

        无监督学习:是学习训练机器使用既未分类也未标记的数据方法,就是无法提供训练 数据,机器只能自行学习,本质就是从已知数据中学习,从而提供未知见解,并且识别隐藏的模式。所以无监督学习就是结果不确定,不一定有明确结果。(聚类)

        分类问题是什么:分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。

        回归问题是什么:回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化。

二、机器学习数据处理步骤

1.收集数据

        收集数据的方式有很多,对于我们初学者来说,可以通过网页下载免费的数据练手。还有 Python自带的一些包中也有现成的数据,例如:sklarn,但当我们正式做项目的时候,数据收集也是很重要且麻烦的,可以通过购买专业数据公司的数据,但是数据一般情况比较贵。也可以通过网络爬虫爬取,这里需要哪些数据可以爬哪些不可以。

        读入数据:代码如下

import pandas as pd

data = pd.read_csv('文件路径)

2.数据处理

        当我们拿到一个数据的时候,数据难免有错误值、不相关值、空缺值等等,所以在模型训练之前我们需要对数据进行预处理。

        数据处理大致的分为:数据清洗、数据集成、数据规约、数据变换

  • 数据清洗

        数据清洗大概就是填补缺失值、处理噪声。

        缺失值及其处理方法:缺失值是指数据缺少感兴趣的属性或感兴趣的属性缺少值,或仅包含聚集数据,没有详细数据。

        如何处理缺失值:1)直接忽略2)填补,人一个一个的填,自动填补

        噪声及处理方法:噪声包括错误值,离群值

        错误值:就是数据类型错误,一般就是将它删除作为缺失值处理。

        离群值:

                找离群值:1)排序)2)平均值法:在【+-3*标准差】之外的值是离群值   3)四分位法:又称平均数或50%平均数,或技术上称为H-spread,是衡量统计学分散度的指标,等于75%和25%之间的差值,或上四分位数和下四分位数之间的差值,IQR=Q3 - Q1。

                处理离群值:1)将离群值视为空值,但是这样可能最后的误差比较大,不推荐使用  2)天花板\地板法,就是将离群的数据全设为最大值和最小值  3)函数校正法:log以10为底离群值的对数,压缩处理

2.数据分割

数据分割目的:一般情况将数据切分为训练集和测试集,37或者28分。有些还序言验证集。

python代码实现(实例):

# 将数据划分为训练集和测试集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.2,random_state=0)

3.模型

1.KNN

        对于机器学习模型,首先我们想到的最基础的就是KNN(K Nearrest Neighbors),它甚至可以不算一个模型,KNN指的是有K个最近的邻居,这个邻居就是距离最近,这个K个距离最近点属于一种类别。

        KNN实现步骤:输入没有标签的新数据(将新数据的每个特征与样本集中数据对应的特征进行比较)---->计算新数据与样本数据集中每条数据的距离---->对所求的所有数据进行排序---->取前 k(k ⼀般小于等于 20 )个样本数据对应的分类标签----> 求 k 数据中出现次数最多的分类标签作为新数据的分类。

KNN代码实现:

classifierResult = kNN.classify0([0, 0], group, labels, 3)

#该函数的参数分别是未知样本数据、数据集、标签和k值

2.朴素贝叶斯算法(有监督学习)

贝叶斯公式:概率

3.线性回归算法(有监督学习)

有一元和多元

4.决策树(有监督学习)

决策树是一类常见的机器学习方法,通过一个树形的决策模型来搜索给定问题的解决方案,适用于能够归结为分类和回归的现实问题。

5.神经网络(有监督学习)

神经网络属于监 督学习中的一类算法,通常用于解决分类、回归和聚类等问题。深度学习是一种基于多层 神经网络的机器学习方法,它可以处理大量复杂的数据,并且在图像、语音和自然语言处理 等任务上取得了很多突破性进展。

6.逻辑回归(有监督学习)

逻辑回归是一种有监督学习算法,研究分类因变量
与一些影响因素之间关系的一种多变量分析方法

7.支持向量机(有监督学习)

支持向量机是主要用于解决分类问题的学习模型。

其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次优化问题的求解。

8.集成算法(有监督学习)

集成算法本身是一种监督学习算法,因为它可以被训练然后进行预测,组合的多个模型作为整体代表一个假设

9.聚类(无监督学习)

聚类是一种将对象分组为聚类的方法,使得具有最多相似性的对象保留在一个组中,并且与另一组的对象具有较少或没有相似性。聚类分析发现数据对象之间的共性,并根据这些共性的存在和不存在对它们进行分类。

10.关联规则(无监督学习)

简单来说:就是将数据一堆一堆聚起来,如果K=3,每次随机产生三个点,将两个距离近的点。

4.模型评估

        模型评估主要有:预测误差情况、拟合程度、模型稳定性等方面。模型评估 (model assessment) 是指对于一种具体方法输出的最终模型,使用一些指标和方法来评价它的泛化能力。 这一步骤通常在模型训练和模型选择之后,正式部署模型之前。 模型评估方法不针对模型本身,只针对问题和数据,因此可以用来评价来自不同方法的模型的泛化能力,进行用于部署的最终模型的选择。

5.结果

补充知识

ROC曲线:就是经过(0,0)(1,1)的曲线,曲线处于00和11的上方,平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。

损失函数:损失函数是衡量回归模型误差的函数,也就是我们要的“直线”的评价标准。这个函数的值越小,说明直线越能拟合我们的数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值