敢说敢作敢为, 无怨无恨无悔。这篇文章主要讲述漫画趣解大数据算法建模:买瓜相关的知识,希望能为你提供帮助。
夕阳下的村东头,有一人来买瓜。
大数据开发如何转型算法?
算法建模主要做什么?调参为什么玄学?
如何通俗理解算法建模过程。。
1 引子(买瓜)忙碌的一天刚刚结束,村里的小张就匆匆的骑上车,准备买个西瓜解暑。
文章图片
故事中的小张凭借多年挑瓜?
?经验?
?,总结好瓜的??特征?
?: ??皮薄?
?、??青绿瓜纹?
?、??曲根蒂?
?和??浊响声?
?。根据这些特征,现场进行??望闻问切?
?,多次实验,选出??最好?
?的瓜。现在换个角度,假设有台机器可以帮我们这些事情。
我们给机器输入一些西瓜的数据:包括各种西瓜的?
?大小?
?、??种类?
?、??颜色?
?、??瓜蒂?
?和??敲击声?
?等信息,再提供一些计算好瓜的??算法公式?
?,希望机器能够稳定、准确的帮我们筛选出好瓜和坏瓜。文章图片
通俗理解,这就是大数据算法建模所做的工作。
【漫画趣解大数据算法建模(买瓜)】在理解业务背景、数据含义的基础上确定?
大数据算法建模核心思想
?预期目标?
?;数据??预处理?
?后,选择合适的??算法?
?和??数据特征?
?并构建??模型?
?,训练最好的模型帮助我们最大化逼近(??预测?
?)预期目标。文章图片
3 大白话讲解算法建模流程前文介绍了算法建模帮我们解决了什么问题?接下来瞅瞅如何进行算法建模。
我会详细介绍算法建模的具体流程,并借助于?
?买西瓜?
?的例子说明。先来看看整体的算法建模流程:
为避免内容枯燥,后面画了大量示意图,方便理解
文章图片
1)流程说明
整体大致可分为?
?业务/数据理解?
?、??预处理?
?、??特征工程?
?、??模型训练?
?、??模型评估?
?和??预测?
?几个步骤。- 首先要理解
数据
和业务目标
,即明确目标和测试的数据。比如说我想挑一个好西瓜,你总不能去个早餐店拿两个包子回来吧? - 其次是数据预处理工作。一般读取的数据是存在一些空值、异常值等其他
非友好
的特性,需要做些特殊处理。 - 在预处理基础上,进一步获取为模型所用的数据(
特征
),被称作特征工程
。在买瓜过程,小张就很老道的看瓜纹、瓜蒂、听敲击声,这些就是好瓜的特征。 - 特征工程完成后,可以选择合适算法进行
模型训练
。此时通常将数据集分成测试集
和验证集
,以此检验模型效果,即区分好瓜的正确程度。 - 经过几轮模型训练和特征工程(过程可迭代、可双向),获取效果最好的模型,在真实数据集进行
预测
(切瓜)。
即无需事先确定目标和数据,总以为能够找到一个完美的算法,能够帮我们自动获取数据规律。
常有的一个误区:
但是算法并不是万能的,需要与之适配的数据和使用场景。再好的剑也需要有温养的环境和一副好剑鞘。
文章图片
4)特征工程
特征工程的主要目的是选择具有价值的数据信息,帮助模型快速和准确训练和预测。
好的数据和特征可以决定训练模型的?
?上限?
?。举个例子:选西瓜过程中,经验丰富的小明对比不同种类西瓜的?
?纹路?
?、??瓜蒂?
?、??敲击声?
?、??尺寸?
?和??种类?
?等特征,快速挑选出想要的好瓜。假如小明是个新手,那么可能只会根据瓜的?
?大小?
?、??颜色?
?来区分,认为大而绿的就是好瓜,当然结果可能相差十万八千里。特征工程的主要工作内容主要如下:
- 基于样本特性筛选特征: 使用数据
统计学
知识,比如计算特征的方差
、相关系数
、分箱/WOE
、IV值
和信息熵
等,筛选出结果比较好的特征。 - 基于模型筛选特征: 将部分特征放入到模型中训练,筛选效果好的特征,适用于特征数据量比较大的场景,比较精确。
- 特征衍生:需要引入一些衍生特征(组合旧特征、开发新特征),提高特征的丰富性
文章图片
5)模型训练
在完成特征工程的基础上,需要选择适配的机器学习算法,构建模型。
常见的机器学习算法:
这里建议可再次计算部分特征的IV值、信息熵等,确保特征完整性。
- 监督学习:包含分类和回归两大类。常见的算法有LR、树算法、神经网络和GBRT等,其中
LR逻辑回归
和树算法
常用于解决风控场景 - 非监督学习:聚类算法、PCA算法和关联规则等算法。其中
Kmeans算法
被广泛运用于数据挖掘分类场景,关联规则
则应用于推荐中。
选择好算法和特征,开始训练模型。训练时间会很长且过程可逆,可适时调整特征和算法迭代。
6)模型评估
模型需要在训练集和验证集上进行训练,如何判断模型训练效果呢?
一般需要从两方面去考虑,即模型准确性和稳定性。
- 准确性评估
模型能否正确预测结果。比如判断一颗表皮青绿、瓜蒂蜷曲、敲击浊响的瓜有多大概率是好瓜。
常用方法:混淆矩阵、KS曲线、ROC曲线等
- 稳定性评估
即模型的稳定性,防止随着时间推移,应用模型的样本特征可能会发生变化,影响模型的预测结果。常通过计算特征的PSI值(变化程度),调整模型。
常用方法:PSI计算
- 小于10%,则无需更新模型;10%-20%, 需检查变化原因,加强监控频率;大于20%,则模型需要迭代。
将模型带入到真实预测集中,预测结果。
序号 | 颜色 | 瓜蒂 | 敲击声 | 好瓜 |
1 | 青绿 | 蜷缩 | 浊响 | 0.958 |
2 | 乌黑 | 蜷缩 | 浊响 | 0.943 |
3 | 青绿 | 硬挺 | 清脆 | 0.412 |
4 | 乌黑 | 稍蜷 | 沉闷 | 0.533 |
?由于篇幅问题,不详细之处,可添加我的wx交流。
其实在实际工作中,我们可能大半时间都集中在?
?特征处理?
?和??模型训练?
?,当然还有玄学的??调参?
?。一个模型运行的好坏,可能会和多种因素有关。需要在掌握底层原理和技术手段的基础上,根据自己的经验去慢慢调试。
而至于如何去学习入门算法建模,这里也提供个人学习方法和路线(仅供参考)。
- 数据知识:统计学、线性代数和离散数学
- 算法知识:机器学习、深度学习算法、某领域场景算法
- python基础知识:可以对照菜鸟教程学习
- Python数据分析:Pandas、Numpy、Matploblib
- 框架学习:jupyter、sklearn、tensorflow、pytorch
- 算法建模实战:系统项目实战、领域延深
- 其他:Spark、Hive等大数据技术
并不能这么说,正如文中所说?
1)做算法建模是不是只会算法就好了?
?特征?
?和??数据?
?是决定模型的上限。特征处理也要很精通,特别是python和pandas等技术其实这两者都可以归为?
2)特征工程和数据预处理的关系?
?特征处理?
?,也即特征工程包含预处理,都是进行数据处理和特征筛选,只不过有的技术体系将其单独划分。我的建议是先去看你的数据,观察特征的?
3)模型的准确度不好,如何调参?
?饱和度?
?、??IV值?
?、??PSI值?
?等,一般不好的特征很大程度影响模型好坏。随后再去调整模型的??超参数?
?,只有你的特征比较好,调整超参才能发挥更好的效果。建议可以按照我上面推荐的学习路线去看,其实算法建模对于没有基础的朋友来说是有蛮高门槛的,推荐一定要把算法理论和数学理论学扎实点,不要深究,理解并会使用即可。
4)没基础怎么学习算法建模
框架只是一个工具,方便编码和调试;重要的是把基础知识学好,任意选择一个即可,推荐pytorch。
5)那么多编程框架怎么选?学习哪个好
建议先把基础知识打牢,包括算法和数学知识,这样在后面会学的很轻松。 至于python、pandas、pytorch等全是工具组件,比较好入门。一开始不用铺开学习所有算法,建议学习一些常用的,后面根据具体场景实战中学习即可。
6)一点点建议
6 写在最后有一人来买瓜,这瓜保熟。。
》》》更多文章,欢迎关注我的gzh:大数据兵工厂
推荐阅读
- 逆向调试入门-OllyDbg的使用
- MySQL数据库(29)(流程结构 if while)
- 基于grpc从零开始搭建一个准生产分布式应用 - 工程构建
- HarborHarbor镜像仓库
- Python代码自动提取Win10内置的锁屏壁纸
- #云原生征文#深入Kubernetes(k8s)概念
- 实模式与保护模式详解一(寄存器)
- 安卓大学生考勤签到app毕业设计
- 微信小程序-控制文本只显示若干行多余隐藏