文章目录
前言
随着人工智能的不断发展,机器学习这门技术也越来越重要,它可以应用很多领域,金融、银行、医药等等,本文就介绍了机器学习的基础内容。
一、机器学习是什么?
机器学习是一种生成规则,发现规则,来帮助我们预测、判断分析和解决问题的技术。
例如:
机器学习可以干什么:对电子商务的综合查询、经济分析等;统计客户的需求趋势并预测未来我们想掌握的问题;以及对患病几率的预测;恶意域名检测;房价预测等等。
机器学习分为监督学习和非监督学习,监督学习又分为分类问题和回归问题。
监督学习是:监督学习是它从过去的数据中学习,并将学习结果应用到未来。
无监督学习:是学习训练机器使用既未分类也未标记的数据方法,就是无法提供训练 数据,机器只能自行学习,本质就是从已知数据中学习,从而提供未知见解,并且识别隐藏的模式。所以无监督学习就是结果不确定,不一定有明确结果。(聚类)
分类问题是什么:分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。
回归问题是什么:回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化。
二、机器学习数据处理步骤
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点对。
损失函数:损失函数是衡量回归模型误差的函数,也就是我们要的“直线”的评价标准。这个函数的值越小,说明直线越能拟合我们的数据。