数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

我是这么利用数据——1篮子鸡蛋


发布日期:2022年05月03日
 
我是这么利用数据——1篮子鸡蛋

一篮子鸡蛋放在你面前让你挑几个带回去吃你会怎么办?我想大致会这样也不能说全拿走这样不好也就看看里面哪几个个头大一些然后挑那几个!今天想和大家分享一点点由挑选引出的数据驱动的含义!

说点题外话可能数据驱动这个说法并不是我提出的但是这四个字真的很贴切很符合我的思路准备长期的使用不过问题是真的很难解释它是什么尝试过很多角度来解释它都还没有说清楚当然了这给了我一次又一次反思的机会倒也不错!今天这个话题也是继续拿鸡蛋的例子来谈数据驱动可能是你的菜也可能不是你的菜但是我决定上无数盘菜你一定会找到你要的那一盘!哈哈!这本身就是数据驱动的做法!

让我们回到鸡蛋的话题!回顾一下鸡蛋拥有者的陈述挑几个带回去吃!思考两个问题

他说挑几个但没有说挑三个或者是挑五个是什么让你最终拿了个或者是个的?

他说挑几个但没有说挑哪几个或者这么问挑是什么意思?但这丝毫不影响你选鸡蛋的行为和规则这个规则怎么来的?

好了问题提完了有人可能要说这两个问题太简单了可以概括为两个字常识由于常识人家让你挑几个那么一般你也就拿三五个!根据常识挑就是选择你喜欢的假设你喜欢大的就选大的万一你喜欢小的也没人拦着你!

原来是常识这个多么简单而又扼杀想象力的玩意!让我们把水搅浑看看常识怎么办?比如说这个人总共就个鸡蛋让你挑几个你根据常识挑三五个于是把三个全拿走了!

你可能要反驳了如果这人总共就个鸡蛋根据常识你应该只拿一个就行了!虽然这么说好像常识很强大但也反应了它并不是个省油的灯具有相当的复杂性掌握它并不容易这是一种行为艺术也许想当然的以为它是常识不过它早已复杂到不是常识这么简单了!

这是什么呢?让我们反过来想一想其实常识不是让你拿三五个也不是让你拿一个而是让你拿一个很小的百分比也就是不要拿太多!想到了这一点问题转换为拟定一个合适的百分比就搞定这个常识了!

让我们再谈一谈刚才的第二个问题!我们说挑大一些的那么到底哪个算大一些呢?可能你要鄙视我大都看不出来啊就是大一点的啊!好吧又是一个完全靠感觉的东西这些东西越简单明了越习以为常越扼杀想象力如果我们让程序来执行这个过程难道你要这么写pick(大一点的)?

好吧说到软件开发了!其实并不难对么?按照数据驱动的理解我们早已掌握了全部的数据给你找出最大的不就行了?当然了除了找最大的还有一个更有意思的方法和大家一起分享

掌握全部的数据计算平均值u

设定一个合适的x但凡某个鸡蛋的重量大于u+x 它就是的!

此方法模拟了人的视觉计算的平均值u就是篮子里的鸡蛋大都长什么样然后大于平均值x个单位的鸡蛋就是大于一般鸡蛋到达一定程度的那种!嘿嘿是不是比大一点的说法要更靠谱哈!

当然了这个方法还不是完美的万恶的数学给了我们一个标准的设定x的方法

掌握所有数据让每个鸡蛋的重量减去平均值u得到一个值然后把这个值求平方得到d(i)

把所有的d(i)求平均得到一个值把这个值开根号得到x(正式的统计学教程里这个量是西格玛

让我们来看看这是在做什么!每个重量都减去平均值是用来标记各个鸡蛋和一般大小之间的差异有多大求平方是让或大或小不能得以抵消大家都懂全体求平均是让这些差异平均化最后开根号是因为前面求了平方这里把单位再折算回去!

其实我可以告诉你这是在求标准差但是为什么要把求解的过程详细描述一遍呢?因为虽然这个是推荐的方法数据驱动就是这么有魅力它不是统计学驱动不完美的规则依然奏效你不必精通万恶的数学因为它不仅能驱动业务还能驱动数据驱动本身!我们可以尝试适当的简化规则只要你喜欢!比如这里我不平方了而是求绝对值这样也就不用开根号了!虽然这有一些缺陷但是总体方向上它早已可以驱动软件利用数据完善规则了其他的who cares?

好了得到x了理论上大于一个x就是很大了大于个x就是超级大大于个x的话那可能不是鸡蛋而是一个鹅蛋不小心掺进来了!

让我们回顾一下这一篮子鸡蛋就是仅仅他们本身就可以用个数说明了拿几个是常识所指就可以用每个鸡蛋的重量自然的决定了哪个是大一些的甚至一个鹅蛋放在里面不用告诉我看重量就能判断了我绝对不会以为它是个超级大的鸡蛋!这在软件里叫做异常数据我这么说你明白么?

好了故事快要结束了按惯例我们说一说数据思路!本系列文章强调的最重要的一个方法就是用数据解释业务而不是人为的指定比如这里的鸡蛋传统软件开发非要问大于多少克才算大你让客户怎么回答你?况且随着新鸡蛋加入进来大的标准在时刻变化!随着鸡蛋被拿走大的标准也在不断变化!这么说吧这个标准变的太快了但是冥冥中它好像总是那么贴合需要!这便是数据驱动!可爽了试试?

来吧写程序用数据驱动蓝瓶的好吸收!

上一篇:领域驱动设计的编码:数据聚焦型开发的技巧 - 第 3 部分

下一篇:MySQL 5.1.41 发布