小弟最近做的一个题目,有拧螺丝过程的转角,扭矩,时间之间的曲线。想这样的数据分类,如何提取特征呢?深度学习可以自动提取特征,普通机器学习方法,对于这种非图像,非语音数据,有哪些特征提取的方式呢?
特来求老司机带一带,不胜感激!
1
yuyang1110 2016-06-06 17:14:57 +08:00
这个。。。输入特征直接是那条曲线就好了。。
|
2
zjj2008se 2016-06-06 17:16:23 +08:00 via Android
线性回归? k-mean 聚类?
|
3
qcts33 2016-06-06 22:55:38 +08:00
这些有明确物理含义的数据之间一般都有明确的数学关系,这种时候我觉得手动推导一下反而更有效……
|
4
menc 2016-06-07 00:19:35 +08:00 4
我不懂你的问题是什么,但是举一个差不多的例子。
一个开在电影院旁边的奶茶店卖奶茶和果汁,让你预测明天的销量,应该怎么找特征呢? 第一步,用脑子想,有什么因素可能影响销量呢?恩,考虑饮品销量可能不会突变,会平滑变化,那么过去几天的销量可能和明天的销量相关;恩,夏天果汁和奶茶会卖的多一些;恩,旁边电影院放大片的时候顾客多,销量会多一些;恩星期六星期日销量会多一些;法定节假日人也会多,卖的也会多一些等等等等。。。 然后去搜集相关的数据。 那么已知: 今天的总销售量 昨天的总销售量 前天的总销售量 今天的奶茶销售量 今天的果汁销售量 今天的天气(阴晴雨雪雾霾冰雹大风) 今天是星期几 明天是星期几 今天是否是节假日 明天是否是节假日 今天电影院上映的电影过去七天的票房 .... 林林总总的数据。 第二步,要把相关的特征去掉,取特征尽量取正交的特征,这样训练起来不会在 loss function 那里飘忽不定。也不会让特征有一个钦定的初始权重,假设你使用 LR 模型,选用了两个基本一样的特征,那么该特征的权重就天然是其他特征的二倍了。 比如饮品店里,有三个特征,今日销售额,今日奶茶销售额,今日其他饮品销售额,显然今日销售额是今日奶茶销售额和其他饮品销售额的现行叠加,第一个特征和第二,第三个特征成相关性,那么就应该将其舍弃,至于舍弃特征一还是舍弃特征二三,看你的取舍咯,或者各自做一下实验看看效果。 第三步,上一步经过选择后,得到一系列原始特征,下一步要做的是数值化。 数值化又分这几种: 第一种,离散的。 比如预测奶茶销售额的 case ,明天是星期几可能非常影响销售量,星期六星期日最高,星期一星期五次之,星期二到星期四最低,那么可以采用 one hot representation 的方式,把 weekday 拆分成一个 7 维的向量,明天是星期几就在星期几置 1 ,比如明天是星期日,那么 weekday 特征就是[0,0,0,0,0,0,1]七维。 第二种, scale 非常大的数值特征,但又不能舍弃的。比如假设淡季每天只卖 1k 元,节假日每天能卖 20k 元,而一般的时候能卖 10k ,那么这个特征的范围就过大,在 normalization 中会大大影响特征的表示能力,会影响特征的权重。这时候应该做的是,将特征拆分开,即使特征是连续的。 那么销售额就拆分成一个 n 维的 01 特征: 0-4k,4-8k,8-12k,12-16k,16-20k;然后每一个销售额都是一个五维向量,当然你也可以分得更细,不要害怕, LR 模型里面几万维度都有可能。 比如一个 17k 的销售额,特征向量就是[0,0,0,0,1]五维。 第三种,很平凡的数值特征, scale 也不太大,比如门口过路的游客数量,如果固定在 10k-20k ,且分布均匀,就可直接当数值特征。 第四步,现在你拥有了一系列的数值特征,我们大可以抽象掉他们,叫特征 1 ,特征 2 ,特征 3 , f4, f5... f1:1800 f2:[0,0,0,0,0,0,1] f3:[0,0,0,1,0] f4:2k ... 下一步要做的是 normalization ,用脚趾想想值为 1800 的特征对结果的贡献是值为 1 的特征的一千八百倍,而 1800 在这个特征中可能表示一个非常弱的结果(比如游客数量,日均 5k ,今天只有 1k8 ),我们要尽量缩小这种特征表示上的差距,而让对结果的贡献显示在特征本身的含义和特征的权重上,而不让数值来影响,这个就叫做 normalization , 对每个数值特征(就是还没被打散的特征),取所有数据中最大和最小的,然后映射到[0,1]区间内,[-1,1]也可以,[-0.5-0.5]也能接受,总之就是一个小区间内,让数值特征的数量级和其他数值特征大致等同。 那么现在,你可能得到了 f1:0.18 f2:[0,0,0,0,0,0,1] f3:[0,0,0,1,0] f4:0.66 第五步,拉伸成一个特征向量( f1,f2,f3,f4,f5) [0.18,0,0,0,0,0,0,1,0,0,0,1,0,0.66] 这个就是你的输入特征咯,特征工程到此结束,下一步训练模型。 不论是分类还是回归,都是这么个路数,分类和回归的区别就是放的模型不一样。 你要用 LR 或者 SVM ,就放到 LR 或者 SVM 中,要是 DART 就放到 DART 中,特征都是一样的。 |
6
heliumhgy 2016-06-07 11:37:13 +08:00
传统方法中,特征工程是很重要的一个过程,一般都是手工构造特征。
|
7
SlipStupig 2016-06-07 12:34:52 +08:00
@menc 大神能留个联系方式么,想跟你交流一些问题
|
8
menc 2016-06-08 11:59:58 +08:00
@SlipStupig
在这里说就好了,没事的 |