算法名称 | 算法概述 |
---|---|
C4.5 | 分类决策树算法,决策树的核心算法,ID3算法的改进算法 |
CART | 分类与回归树(Classification and Regression Trees) |
KNN | K近邻分类算法;如果一个样本在特征空间中的k个最相似的样本中大多数属于某一个类别,那么该样本也属于该类别 |
NaiveBayes | 贝叶斯分类模型;该模型比较适合属性相关性比较小的时候,如果属性相关性比较大的 时候,决策树模型比贝叶斯分类模型效果好(原因:贝叶斯模型假设属性之间是互不影响的) |
SVM | 支持向量机,一种有监督学习的统计学习方法,广泛应用于统计分类和回归分析中 |
EM | 最大期望算法,常用于机器学习和计算机视觉中的数据集聚领域 |
Apriori | 关联规则挖掘算法 |
K-Means | 聚类算法,功能是将n个对象根据属性特征分为k个分割(k<n),属于无监督学习(有接触) |
PageRank | Google搜索重要算法之一 |
AdaBoost | 迭代算法,利用多个分类器进行数据分类 |
数据收集 ==> 数据预处理(清理与转换) ==> 特征提取 ==> 模型构建(数据建模) ==> 模型训练 ==> 模型测试 ==> 模型评估 ==>投入使用(模型部署与整合) ==> 迭代优化(利用模型反馈数据) ==> 数据收集 ==> …
详细流程
数据来源
用户访问行为数据
业务数据
外部第三方数据
数据存储
需要存储的数据:原始数据、预处理后数据、模型结果
存储设施:MySQL、HDFS、HBase、Solr、Elasticsearch、Kafka、Redis等
数据收集方式
Flume:日志收集系统。提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统),支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力
Kafka:开源流处理平台、分布式高吞吐量发布订阅消息系统。
数据清洗和转换 ️
实际生产环境中机器学习比较耗时的一部分,大部分的机器学习模型所处理的都是特征,特征通常是输入变量所对应的可用于模型的数值表示。大部分情况下 ,收集得到的数据需要经过预处理后才能够为算法所使用,预处理的操作主要包括以下几个部分:
(1) 数据过滤
(2) 处理数据缺失
(3) 处理可能的异常、错误或者异常值
(4) 合并多个数据源数据
(5) 数据汇总
(6) 对数据进行初步的预处理,需要将其转换为一种适合机器学习模型的表示形式,对许多模型类型来说,这种表示就是包含数值数据的向量或者矩阵 :
(7) 将类别数据编码成为对应的数值表示(一般使用1-of-k方法)-dumy
功能:将非数值型的特征值转换为数值型的数据
描述:假设变量的取值有 k 个,如果对这些值用 1 到 k 编序,则可用维度为 k的向量来表示一个变量的值。在这样的向量里,该取值所对应的序号所在的元素为1,其他元素均为0。类似将之前的符号变为一个只有0-1两个选项的选题,在矩阵对应位置选择相应选项。如下例:
(8) 从文本数据中提取有用的数据(一般使用词袋法或者TF-IDF)
词袋:将文本当作一个无序的数据集合,文本特征可以采用文本中的词条T进行体现,那么文本中出现的所有词条及其出现的次数就可以体现文档的特征
TF-IDF: 词条的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降;也就是说词条在文本中出现的次数越多,表示该词条对该文本的重要性越高,词条在所有文本中出现的次数越少,说明这个词条对该文本的重要性越高。TF(词频)指某个词条在文本中出现的次数,一般会将其进行归一化处理(该词条数量/该文档中所有词条数量,越大表示该词条在该文档中越重要);IDF(逆向文件频率)指一个词条重要性的度量,一般计算方式为总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到,越大表示该词条在该文档中越重要。TF-IDF实际上是:TF * IDF(暑假数学建模培训中有所涉及,难度不是很大)。
(9) 处理图像或者音频数据(像素、声波、音频、振幅等<傅里叶变换>)
(10) 数值数据转换为类别数据以减少变量的值,比如年龄分段
(11) 对数值数据进行转换,比如对数转换
(12) 对特征进行正则化、标准化,以保证同一模型的不同输入变量的值域相同
(13) 对现有变量进行组合或转换以生成新特征,比如平均数 (做虚拟变量)不断尝试
模型训练及测试
(1) 模型选择:对特定任务最优建模方法的选择或者对特定模型最佳参数的选择。
(2) 在训练数据集上运行模型并在测试数据集中测试效果,迭代进行数据模型的修改,这种方式被称为交叉验证(将数据分为训练集和测试集,使用训练集构建模型,并使用测试集评估模型提供修改建议)
(3) 模型的选择会尽可能多的选择算法进行执行,并比较执行结果(提高结果的可信度)。
(4) 模型的测试一般以下几个方面来进行比较,分别是准确率/召回率/精准率/F值:
准确率(Accuracy)=提取出的正确样本数/总样本数
召回率(Recall)=正确的正例样本数/样本中的正例样本数(覆盖率)
精准率(Precision)=正确的正例样本数/预测为正例的样本数
F值=Precision*Recall*2 / (Precision+Recall) (即F值为正确率和召回率的调和平均值)
与目的相关的就是正样本。eg:有一堆字母图片的数据集,你要识别哪个是含有A字母的图片,那么含有A字母的图片就是正样本,其他的都是负样本
混淆矩阵
6.模型评估(前三点主要为分类算法)
(1) 准确率、召回率、精准率、F值
(2) ROC
描述的是分类混淆矩阵中FPR-TPR(↑具体见混淆矩阵↑)两个量之间的相对变化情况。ROC曲线的纵轴是TPR,横轴FPR。 如果二元分类器输出的是对正样本的一个分类概率值,当取不同阈值时会得到不同的混淆矩阵,对应于ROC曲线上的一个点。
ROC曲线就反映了FPR与TPR之间权衡的情况。在TPR随着FPR递增的情况下,TPR增长得越快,曲线越往上屈,AUC就越大 ,反映了模型的分类性能就越好。当正负样本不平衡时,这种模型评价方式比起一般的精确度评价方式的好处尤其显著。
(3) AUC(AUC的值越大表达模型越好)
AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1(整个坐标系为横纵坐标为一的正方形)。又由于ROC曲线一般都处于 y=x 这条直线的上方,所以AUC的取值范围在 0.5 和 1 之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而AUC作为数值可以直观的评价分类器的好坏,值越大越好。
AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器;
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值;
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值;
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
(4) 回归算法结果度量指标
explained_varicance_score:可解释方差的回归评分函数
mean_absolute_error:平均绝对误差
mean_squared_error:平均平方误差
(5) 分类算法评估对应函数 & 回归算法评估对应函数
分类算法
回归算法
(6) 模型部署和整合
当模型构建好后,将训练好的模型存储到数据库中,方便其它使用模型的应用加载(构建好的模型一般为一个矩阵)
模型需要周期性(一个月、一周)
(7) 模型的监控与反馈
模型的效果监控是非常重要的,往往需要关注业务效果和用户体验,有时候会进行A/B测试
模型需要对用户的反馈进行响应操作,即进行模型修改,但是要注意异常反馈信息对模型的影响,故需要进行必要的数据预处理操作
文章浏览阅读2.1k次。FX3 JLINK调试是一个有些麻烦的事情,经常有些莫名其妙的问题。 设置参见 c:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware 下的 EzUsbSuite_UG.pdf 文档。 常见问题: 1.装了多个版本的jlink,使用了未注册或不适当的版本 选择一个正确的版本。JLinkARM_V408l,JLinkA_ezusbsuite_qsg.pdf
文章浏览阅读2.6k次。** 本文仅通过用openGL+QT简单实现二进制stl文件读取显示并通过鼠标旋转缩放, 是比较入门的级别,由于个人能力有限,新手级别,所以未能施加光影灯光等操作, 未能让显示的stl文件更加真实。****效果图:**1. main.cpp```cpp#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); _qopengl如何鼠标控制旋转
文章浏览阅读943次,点赞22次,收藏19次。以大规模预训练语言模型为基础的chatgpt成功出圈,在近几日已经给人工智能板块带来了多次涨停,这足够说明这一风口的到来。而作为曾经的风口“知识图谱”而言,如何找到其与chatgpt之间的区别,找好自身的定位显得尤为重要。形式化知识和参数化知识在表现形式上一直都是大家考虑的问题,两种技术都应该有自己的定位与价值所在。知识图谱构建往往是抽取式的,而且往往包含一系列知识冲突检测、消解过程,整个过程都能溯源。以这样的知识作为输入,能在相当程度上解决当前ChatGPT的事实谬误问题,并具有可解释性。
文章浏览阅读1.3k次。最重要的一点,一定是degbug的方式启动,不然热部署不会生效,注意,注意!_tomcat热部署
文章浏览阅读10w+次,点赞56次,收藏482次。html5 ,用css去修饰自己的个人主页代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xh..._个人主页源码
文章浏览阅读201次。开发者(KaiFaX)面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区来源:开源最前线链接:https://github.com/svenstaro/gen..._程序员怎么上班摸鱼
文章浏览阅读1.3k次。改变Block UI界面的尺寸_ug二次开发 调整 对话框大小
文章浏览阅读1.3w次,点赞18次,收藏291次。基于深度学习的股票预测数据获取数据转换LSTM模型搭建训练模型预测结果数据获取采用tushare的数据接口(不知道tushare的筒子们自行百度一下,简而言之其免费提供各类金融数据 , 助力智能投资与创新型投资。)python可以直接使用pip安装tushare!pip install tushareCollecting tushare Downloading https://files.pythonhosted.org/packages/17/76/dc6784a1c07ec040e74_基于深度学习的股票操纵识别研究python代码
文章浏览阅读2k次。【IT168 厂商动态】 近日,北京中科网威(NETPOWER)工业级防火墙通过了中国电力工业电力设备及仪表质量检验测试中心(厂站自动化及远动)测试,并成为中国首家通过电力协议访问控制专业测评的工业级防火墙生产厂商。 北京中科网威(NETPOWER)工业级防火墙专为工业及恶劣环境下的网络安全需求而设计,它采用了非X86的高可靠嵌入式处理器并采用无风扇设计,整机功耗不到22W,具备极_电力行业防火墙有哪些
文章浏览阅读206次。/*烟台大学计算机学院 作者:董玉祥 完成日期: 2017 12 3 问题描述:二叉树排序树中查找的路径 */#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node
文章浏览阅读775次。当时老师一定会告诉你,这个一个"warning"的报警,可以不用管它,也确实如此。不过,这条报警信息我们至少可以知道一点,就是scanf函数调用完之后是有一个返回值的,下面我们就要对scanf返回值进行详细的讨论。并给出在编程时利用scanf的返回值可以实现的一些功能。_c语言ignoring return value
文章浏览阅读9.6k次。十四五规划下,数据安全成为国家、社会发展面临的重要议题,《数据安全法》《个人信息保护法》《关键信息基础设施安全保护条例》已陆续施行。如何做好“数据安全建设”是数字时代的必答题。_数字医疗服务保障方案