所谓参数
,是在ML里面最关键也最麻烦的部分,俗话说garbage in garbage out
,输入的内容不洽当,模型做得再好也无用武之地。
在ML里面会纳入的参数,我们也称之为特徵,参数的内容值也称作特徵值
,这个所谓特徵值是一个不精准的口语讲法,跟数学上的「特徵值」有些出入,事先声明接下来讲的特徵值是一个概念名词而已,讲得是参数内容。
收集资料的概念,其实大家不难理解,透过log data或者DB的raw data,基本上身为系统工程师的一员,能够轻易取得资料或者做些对资料收集上的调整。
决定完命题之後,第一的困难会是参数上的处理,也就是所谓的「资料清洗」和「特徵工程」,而其中「资料清洗」相对我们本业来说,是相对简单的部分,本身log资料能够在elk完整显现,已经是历经一段格式整理和规范之下的产物,系统本身也有资料parser或者二次重组的服务,所以在这一点,所谓的基础建设问题,有着先天的优势。
问题会在於「特徵工程」上,编码的处理方式是我们未曾经历的体验,为什麽需要编码呢?问题回到我们要训练的模型,是一堆数学公式的运算,运算後得出的也是一个数学函式的模型,简单的概念例如地址、客户性别、客户登入的装置来源等等,这些资料在经过转换成数字之前,是无法参与数学运算,所以这些资料要经过「编码」。
编出的数字,有时候因为数字本身有次序性,因此编码方式就需要有所考量,举例来说:0、1、2、3、4、5,不只我们直觉上就对这些关系有大小之分,连电脑系统的四则运算都会对它们的等式都会有所区别。
以下举两个常见的编码例子:
假设客户的月收入用级距万元区分
原本的资料本身就有次序的意义,所以编码也要使用有次序的编码比较适用。
假设居住地有 基隆市、台北市、新北市、桃园市、台中市、高雄市
将这6个地区编成0~5就不太适合,因为这些地区资料本身无前後次序之分。
比较好的做法,是比方说编成2进位的形式之类,比较符合资料的原意。
基隆市 ⇒ 000001
台北市 ⇒ 000010
新北市 ⇒ 000100
桃园市 ⇒ 001000
台中市 ⇒ 010000
高雄市 ⇒ 100000
简单来说,编码就是把既有的资料想办法数学化
,训练模型可以想做是一连串routine的数学运算,不断重复计算直到得出评估之後相对最好的结果,因此在这之前需要将我们的资料转换成适当的数字。
<<: Day07 Kibana - Query DSL 语法结构
大家好,我是 A Fei,相信大家应该都听过费波那契数(Fibonacci)的大名,又称费式数列,是...
前言 在更新Linkedkin 个人档案的时候 偶然发现他有技术检定测验 如果总成绩在前30%,会发...
对於分散式资料库的高可用性, 在前面【Day 3】分散式系统模型、容错、高可用的後段已经提过衡量的标...
纪录一下遇到错误时直接exit的写法 #include <stdio.h> #inclu...
第~14~天~罗~ 假如有开发过 Web 的都知道, 假如要设定按钮按下後的动作, 可在 html ...