机器学习概述

机器学习概述

一、机器学习的定义

机器学习是一门从数据中研究算法的多领域交叉学科,研究计算机如何模拟或实现人类的学习行为,根据已有的数据或以往的经验进行算法选择、构建模型,预测新数据,并重新组织已有的知识结构使之不断改进自身的性能。

Machine Learning (ML) is a scientific discipline that deals with the construction and study of algorithms that can learn from data.It is the field of study that gives computers the ability to learn without being explicitly programmed.

A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measure by P, improves with experience E.

机器学习、人工智能和深度学习的关系

机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术(特征提取)。

二、机器学习的分类

1、有监督学习SL(Supervised Learning)

用已知某种特性的样本(x,y)做为训练集,建立一个数学模型,求解f:x->y,预测未知样本。

1)判别式模型(Discriminative Model)

对条件概率p(y|x)进行建模,如线性回归、决策树、SVM、KNN、神经网络等。

2)生成式模型(Generative Model)

对联合概率p(x,y)进行建模,如HMM、Naive Bayes、GMM、LDA等。

二者比较:

http://www.360doc.com/content/16/0914/14/478627_590751678.shtml

生成式模型更普适;判别式模型更直接、目标性强。

生成式模型关注数据是如何产生的,寻找的是数据分布模型;判别式模型关注数据的差异性,寻找的是分类面。

由生成式模型可以产生判别式模型,但是由判别式模型无法生成生成式模型。

2、无监督学习UL(Unsupervised Leaning)

训练集数据只有x没有标签y,目的是试图提取数据中隐含的结构和规律,常见的算法有K-means、降维、文本处理(特征抽取)等。

无监督学习一般作为有监督学习的前期数据处理,功能是从原始数据集中抽取出必要的标签信息。

3、半监督学习SSL(Semi-Supervised Learning)

前两者的结合,利用少量标注了的样本和大量未标注的样本进行训练和测试。SSL的三种基本假设:

1)平滑假设(Smoothness Assumption):位于稠密数据区域的两个距离很近的样例的类标签类似。

2)聚类假设(Cluster Assumption):当两个样例位于同一聚类簇时,它们在很大概率下有相同的类标签。

3)流形假设(Manifold Assumption):将高维数据嵌入到低维流形中,当两个样例位于低维流形中的一个小局部邻域内时,它们具有相似的类标签。

4、强化学习RL(Reinforcement Learning)

系统(autonomous agent)通过从环境States到行为Actions映射的学习,以使强化信号Rewards函数值达到最大,即改进行动方案Policy以适应环境。

RL 与SL、UL的一个重要区别是:后两者需要满足数据是服从独立同分布的,而RL则不满足这个条件,因为Agent和环境交互过程中状态是不断变化的,RL本质是对连续序列做决策的过程。

机器学习常用方法分类

1、分类

通过分类模型,将数据集中的样本映射到给定的类别中。

2、聚类

通过聚类模型,将数据集中的样本分为几个类别,属于同一类别的样本相似性较大。

3、回归

反映了数据集中样本的属性值的特征,通过函数表达样本映射关系。

4、关联规则(Apriori、FP-Growth)

获取隐藏在数据项之间的关联或相互关系,即可根据一个数据项的出现推导出其他数据项的出现频率。

三、基本概念

1、输入x:一般以m表示输入样本数量,n表示每个样本具有的属性个数。

:表示第i个样本的x向量

这里写图片描述:表示i个样本的第j个维度的值

2、输出y:目标值/标签值。

3、假设函数(Hypothesis):

4、需要求解的参数(Parameters):这里写图片描述

5、损失函数(Loss/Error function):单个样本的误差。

6、代价函数(Cost function):训练集所有样本损失函数之和的平均值。

的预测值; Goal:

7、目标函数(Objective function):代价函数加上正则项

目标函数

8、鲁棒性(Robustness):表示系统对特性或参数扰动的不敏感性,即系统的健壮性、稳定性,当存在部分异常数据时算法也会很好的拟合数据集。

9、拟合:构建的算法符合给定的数据集的特征程度。

欠拟合(Underfitting):high bias 算法不太符合给定数据集的特征。

过拟合(Overfitting):high variance 算法太符合给定数据集的特征,但对新数据集特征的拟合程度差。

过拟合

四、常用框架

scikit-learn、Mahout、Spark MLlib、……

使用scikit-learn框架解决一般机器学习问题时的算法选择思路:

http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

Python常用软件可以从这个网站下载

https://www.lfd.uci.edu/~gohlke/pythonlibs/

例如要安装对应版本xgboost:

打开Anaconda Prompt进入放置whl下载包的目录 (切换磁盘时输入F: 而不是cd F:);

pip install xgboost… Tab键补全包名。

安装成功后conda list或者pip list可查看已安装的所有类库。

五、机器学习开发流程

1、数据收集

业务数据、爬虫

公开的数据源

http://archive.ics.uci.edu/ml/datasets.html

https://www.kaggle.com/competitions

https://tianchi.aliyun.com/datalab/index.htm

https://aws.amazon.com/cn/public-datasets/

http://www.kdnuggets.com/datasets/index.heml

http://www.sogou.com/labs/resources/list_pingce.php

http://www.pkbigdata.com/common/cmptIndex.html

2、数据预处理

基于所有的特征进行预处理

数据清洗和转换:数据过滤、缺失/异常值处理、数据源合并数据汇总等。

数据转换:确保数据格式符合要求、类别哑编码、特征归一化、文本类数据使用词袋法或TF-IDF、图像或音频数据使用傅里叶变换等。

1)哑编码(One-hot Encoding)

又称一位有效编码,将非数值型类别类型转换为数值型数据,方法是使用m位状态寄存器来对m个状态进行编码,每个状态都有独立的寄存器位,并且在任意时刻,只有一位有效(用1表示,其他位均为0)

例如有m种类别标签,可以表示为m维或m-1维(避免多重共线性问题)哑编码:

  

2)词袋法

将文本作为一个无序的数据集合,文本特征可以采用文本中的词条进行体现,那么文本中出现的所有词条及其出现的次数就可以体现文本的特征。

3)TF-IDF(TF * IDF)

词条的重要性与它在文本中出现的次数成正比,但同时随着它在语料库中出现的频率成反比。词频TF指某个词条在文本中出现的次数,一般将其进行归一化处理(该词条数量/该文档中所有词条数量);逆向文件频率IDF指一个词条重要性的度量,为总文件数目除以包含该词语的文件数目后取对数得到。

  

3、数据分析

特征工程包含了建立新特征、数据分箱/分区、交叉特征、特征选择/降维/提取等方面,是在数据预处理之后的步骤。

1)归一化

在处理不同取值范围的特征时,通常将数据归一化,即将数据取值范围缩放到[0, 1]或[-1, 1]之间(或其他合理值,根据需求而定),使各特征对目标函数的影响权重是一致的(扁平的分布变圆),不必对x0归一化,因为它总是1。

归一化可以提高迭代的收敛速度,并提高求解精度。

Rescaling=

Mean normalization=

2)区间化

将数据按比例缩放,使其映射到某一个区间范围内,方法是先归一化,再乘以某一比例,最后加减某一个值。

4、训练算法

模型构建:应尽可能多的选择算法并比较执行结果,选择最优建模方案、超参调节,使R2值接近1。

5、测试算法

模型评估:准确率、召回率、精准率、F1指标、MSE、R2值等。




















预测值
正例负例
真实值正例真正例(TP)假负例(FN)
负例假正例(FP)真负例(TN)

1)准确率:预测正确的样本数/总样本数

Accuracy=

2)召回率(覆盖率):预测正确的正例样本数/样本中总的正例样本数

Recall=

3)精准率:预测正确的正例样本数/预测为正例的样本数

Precision=

4)F1指标:精准率和召回率的调和平均值,兼顾了召回率与精准率

F1 measure=

混淆矩阵

5)ROC(Receiver Operating Characteristic):描述的是分类混淆矩阵中FPR-TPR两个量之间的相对变化情况,TPR增长越快、曲线越往上曲,则模型的分类性能就越好。

ROC几个特殊的点说明:

(0,0) TP=FP=0,全预测为负

(1,1) TN=FN=0,全预测为正

(0,1) FN=FP=0,全部预测正确,完美分类器

(1,0) TN=TP=0,全部预测错误,最差分类器

6)AUC(Area Under Curve):ROC曲线下的面积,取值范围在0.5~1之间。

AUC=1,完美分类器

0.5 < AUC<1,优于随机猜测,具有预测价值

AUC=0.5,与随机猜测结果一样,没有预测价值

AUC<0.5,比随机猜测还差,但只要反预测而行就优于随机猜测

7)均方误差 MSE/RMSE(Mean Squared Error)

MSE指的是参数估计值与实际值之差的平方的期望值,这个值越小说明预测模型具有越好的精确度。RMSE是MSE的算术平方根。

In statistics, the mean squared error of an estimator measures the average of the squares of the “errors”, that is, the difference between the estimator and what is estimated. MSE is a risk function on, corresponding to the expected value of the squared error loss or quadratic loss.

使用方法:from sklearn.metrics import mean_squared_error

8)平均绝对误差 MAE/RAE (Mean Absolute Error)


使用方法:from sklearn.metrics import mean_absolute_error, median_absolute_error__

9)回归平方和SSR(Sum of Squares for Regression):

10)总离差平方和SST/TSS(Total Sum of Squares):

表示样本之间的差异情况,是伪方差的m倍。

11)残差平方和RSS(Residual Sum of Squares)、和方差SSE(Sum of Squares for Error):

表示预测值和样本值之间的差异情况,是MSE的m倍。

12)R2值(R-Squared/Coefficient of determination)

拟合优度/决定系数R2值指回归直线对观测值的拟合程度,即将预测值与只使用均值的情况相比,,值越接近于1说明回归直线对观测值的拟合程度越好。

R2值的另一种表示方式:

使用方法:from sklearn.metrics import r2_score

6、使用算法

模型部署与整合:构建好模型后,存储到数据库中,方便其他使用模型的应用加载。

模型监控与反馈:在实际生产环境中,如果遇到新的问题需要修改模型,重复执行以上的步骤。

迭代优化:一周、一个月。

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于机器学习的路面病害检测是利用计算机视觉和机器学习技术对道路表面上的病害进行自动检测和识别的过程。其主要流程包括图像采集、图像预处理、特征提取、分类器训练和病害检测等几个步骤。 在图像采集阶段,利用摄像机或者其他设备对道路表面进行拍摄,获取病害图像。在预处理阶段,对图像进行去噪、图像增强等处理,以提高识别精度。在特征提取阶段,利用计算机视觉技术对图像进行分析,提取出病害的特征,例如形状、纹理、颜色等。在分类器训练阶段,利用机器学习算法对提取的特征进行训练,建立病害分类模型。最后,在病害检测阶段,利用训练好的分类器对新的道路病害图像进行检测和识别。 基于机器学习的路面病害检测具有自动化、高效性和准确性等优点,可以有效提高道路病害的检测速度和精度,为道路维护和管理提供了有力的支持。 ### 回答2: 基于机器学习的路面病害检测是一种利用机器学习算法和技术来自动识别和检测路面病害的方法。路面病害包括裂缝、坑洞、龟裂等,它们对道路的安全性和可行性都有重要影响。 这种方法通常包括以下步骤:首先,需要采集路面图像或视频数据,可以使用传感器、摄像机等设备进行采集。接下来,要对这些数据进行预处理,包括去除噪声和图像增强等操作,以提高检测的准确性和性能。 然后,需要使用机器学习算法对预处理后的数据进行训练,这一步骤称为模型训练。训练数据可以包括已标记的正常路面和含有病害的路面图像,让机器学习算法能够学习到不同病害类型的特征和模式。常用的机器学习算法包括支持向量机、决策树、神经网络等。 一旦模型训练完成,就可以使用该模型来进行路面病害检测了。将新的路面图像输入到模型,模型将根据之前学到的特征和模式进行预测和分类,判断该图像是否存在路面病害。预测结果可以使用不同的方式进行呈现,比如可以可视化成图像或标记出病害位置。 基于机器学习的路面病害检测具有高效性和准确性的优势。相比传统人工检测方式,这种方法能够实现自动化和快速检测,节省人力资源和时间成本。而且,由于机器学习可以不断学习和优化,所以检测效果也会随着时间的推移而得到改善。因此,基于机器学习的路面病害检测在道路维护和交通安全方面有着广阔的应用前景。 ### 回答3: 基于机器学习的路面病害检测是将机器学习算法应用于路面病害检测的一种方法。路面病害是指路面上的裂缝、坑洼、龟裂等损坏,这些病害如果得不到及时发现和修补,会对交通安全和行车舒适度产生很大的影响。 基于机器学习的路面病害检测主要包括以下几个步骤。首先,需要收集大量的路面病害样本数据,包括病害图像、病害位置和病害严重程度等信息。然后,利用这些样本数据进行数据预处理,如图像去噪、裁剪和尺度归一化等操作,以提高后续的模型训练效果。 接下来,选择适合的机器学习算法进行模型训练。常用的算法包括支持向量机(SVM)、卷积神经网络(CNN)和深度学习等。在模型训练过程,需要将样本数据划分为训练集和测试集,通过迭代优化算法参数,使得模型能够准确地判断路面病害的存在与严重程度。 最后,将训练好的模型应用于实际路面病害检测。利用摄像头等设备获取实时的路面图像,经过图像处理和特征提取,然后输入已训练好的模型进行预测。模型会根据图像的特征进行病害识别和分类,并判断病害的严重程度,进一步提供相应的维修建议。 基于机器学习的路面病害检测具有高效、准确、自动化等特点。它能够大大提高路面病害检测的效率,减少人工巡检的工作量,降低维修成本,同时能够实现对路面病害的及时监测和预警,有助于改善道路交通的安全性和舒适性。这种技术的发展前景较好,将在未来的交通领域得到广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值