原始数据、和间接数据对模型训练效率有不同的影响么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huzhikuizainali
V2EX    机器学习

原始数据、和间接数据对模型训练效率有不同的影响么?

  •  
  •   huzhikuizainali 2021-05-17 11:02:18 +08:00 1846 次点击
    这是一个创建于 1617 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设某电子商务网站希望“优质”商品排在搜索结果前面。人工选取了“好”“中”“差”三组商品各 1000 个。同时将他们的后台数据提取出来。
    原始数据,包括每个商品以下数据:
    1 、曝光量 2 、点击量 3 、访问独立用户数 4 、加购物车量 5 、收藏量 6 、订购量 7 、好评量 8 、中评量 9 、差评量…………

    间接数据,包括每个商品以下数据(假设上帝已经帮我选出了所有)
    1 、点击率=点击量 /曝光量 2 、加购率=加购物车量 /访问独立用户数 3 、收藏率=收藏量 /访问独立用户数 4 、好评率=好评量 /评价总数 5 、差评率=差评量 /评价总数 …………

    那么给模型喂训练数据时,原始数据、间接数据 哪个对模型训练最有效。有效性:可以这样评价、同样的训练数据量训练出的模型。哪个实际运行后对好坏商品的区分度最高。或者对好坏商品区分度一样的模型。哪个用的训练集最少,训练时间最短。

    以上比较,假设没有数据集的遗漏。因为原始数据集和间接数据集后面都有省略号。且排序都按照数据有效性排序。即对训练最有效的数据排在前面。例如原始数据集,假设曝光量时最有效的数据。间接数据认为点击率是最有效数据。

    直觉上觉得间接数据集应该更有效?如果这种直觉是正确的。请问有什么背后的理论依据么?比如数学层面的。或者机器学习理论或神经网络理论层面的。
    24 条回复    2021-07-02 16:29:19 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       2021-05-17 11:31:12 +08:00
    没看懂你想干啥
    longbye0
        2
    longbye0  
       2021-05-17 11:41:53 +08:00 via iPhone
    衍生特征会更好些,特征维度增加了,当然你可以两个都试。
    huzhikuizainali
        3
    huzhikuizainali  
    OP
       2021-05-17 12:48:31 +08:00
    @longbye0 不懂就问:衍生特征会更好些---------是什么意思?
    huzhikuizainali
        4
    huzhikuizainali  
    OP
       2021-05-17 12:48:54 +08:00
    @liprais 哪里没看懂,我进一步补充。
    longbye0
        5
    longbye0  
       2021-05-17 13:28:16 +08:00
    @huzhikuizainali 就你说的原始数据 x1,x2,构造出的衍生特征,比如 x1/x2
    huzhikuizainali
        6
    huzhikuizainali  
    OP
       2021-05-17 14:14:03 +08:00
    @longbye0 明白了。这属于数学理论或机器学习理论或数据挖掘理论的哪个分支? 或者在上述哪个理论中能找到支持的依据?
    princelai
        7
    princelai  
       2021-05-17 15:13:36 +08:00
    应该是你说的间接数据效果更好,通常特征都是原始特征+交叉特征,你的间接数据就属于人为选择的交叉特征。而且为什么不把原始数据和间接数据一起放入模型,让模型自己选择哪个有用哪个没用呢?
    greengreengo
        8
    greengreengo  
       2021-05-17 15:17:21 +08:00
    额,理论层面先不说,但是这两种数据同时用或者对比用几次,经验层面可以有结论。我直觉上觉得衍生特征不一定好用,这完全取决于你衍生的方式是否能更好的反应 标签 y 。但实际工作中衍生特征很多时候都是重要特征。理论没研究过
    FrancisQiu
        9
    FrancisQiu  
       2021-05-17 16:30:34 +08:00
    原始数据一般还是需要预处理的,保证尺度不变性
    CopenhagenCat
        10
    CopenhagenCat  
       2021-05-17 16:57:51 +08:00
    把所有特征全加进去训练一下不就好了,看看训练后的模型对每个特征重要性的排序,心里就有数了

    这个量级的数据,几分钟就能训练好吧,多测试几次比在这问有用多了

    原始特征和衍生特征,谁更重要得看具体数据场景,好像没有定论谁更重要
    huzhikuizainali
        11
    huzhikuizainali  
    OP
       2021-05-17 17:46:43 +08:00 via iPhone
    @princelai 谢谢回复。我对你说的“ 通常特征都是原始特征+交叉特征” 这个特征觉得既陌生又熟悉。看过一些视频。提取特征值什么的好像涉及到线性代数的知识(我记得不太准确)。而在这里“原始数据变成了原始特征。间接数据变成了交叉特征。怎么这么简单?那还用线性代数干什么呢?究竟应该怎么理解“特征”还请指教
    huzhikuizainali
        12
    huzhikuizainali  
    OP
       2021-05-17 17:49:49 +08:00 via iPhone
    @CopenhagenCat 谢谢你的回复。“没有定论”也是一个很重要的结论:)
    关于“ 原始特征和衍生特征,谁更重要得看具体数据场景”有没有涉及这个问题的书或者文章,视频推荐?对数学要求不高的更好。
    huzhikuizainali
        13
    huzhikuizainali  
    OP
       2021-05-17 17:52:21 +08:00 via iPhone
    @princelai 单纯以结果判断优劣会不会陷入过拟合的困境?不过也许过拟合跟这个没关系?
    我是不是不应该用人的逻辑去推测机器学习的逻辑?
    princelai
        14
    princelai  
       2021-05-17 17:53:03 +08:00
    @huzhikuizainali #11 我觉得是你记错了,如果是特征降维 /SVD 这些可能会用到矩阵特征值,你的这个特征和那个不是一个东西,原始数据处理要么是增加特征,可以是交叉 /衍生出来的,要么是标准化 /归一化,剩下线性和非线性的拟合部分交给模型去做。
    huzhikuizainali
        15
    huzhikuizainali  
    OP
       2021-05-17 17:58:38 +08:00 via iPhone
    @princelai 谢谢指教。多谢
    princelai
        16
    princelai  
       2021-05-17 17:59:38 +08:00
    @huzhikuizainali #13 当然不是单纯用结果去判断,你要根据你的训练误差,测试误差,去判断你的特征和模型的好坏,所以让你把所有特征都放进去,让模型自己 train 出来,误差也分为多种,回归和分类的,AUC,RMSE,MAPE,交叉熵。如果是做特征选择,那通常是方差算出来的,比如 chi2,一般会根据你选择的函数结果也不同。
    limitlessun
        17
    limitlessun  
       2021-05-18 12:29:52 +08:00
    在比较简单的机器学习模型中是肯定有影响的,Kaggle 的房价预测里有一个例子,原始数据包含了房屋面积和上次出售价格,如果人为地添加单位面积价格=出售价格 /面积这一特征,模型的准确率会提高很多。
    神经网络不太确定,对于 LZ 定义的纯数值计算得到的"间接数据"个人倾向于没有影响,因为神经网络理论上可以逼近任何函数,所以"间接数据"应该可以被学习到。
    神经网络一般用于图像、视频和文本,会采用数据增强的形式,例如随机裁剪或添加噪声,如果把这也看做一种形式的"间接数据",那么它们可以增强网络的泛化能力,减小过拟合的影响。
    huzhikuizainali
        18
    huzhikuizainali  
    OP
       2021-05-18 12:43:03 +08:00
    @limitlessun 谢谢回复。请问“因为神经网络理论上可以逼近任何函数,所以"间接数据"应该可以被学习到。”---------这会以大量增加训练数据量为代价么?比如获得同样质量的模型需要增加指数级的训练数据量。
    limitlessun
        19
    limitlessun  
       2021-05-18 14:47:10 +08:00 via iPhone
    @huzhikuizainali 我不太明白你的问题,你是指 dataset 中的样本数量还是说训练的迭代次数?神经网络有很多种不同的结构,没法一概而论
    huzhikuizainali
        20
    huzhikuizainali  
    OP
       2021-05-18 20:51:35 +08:00 via iPad
    @limitlessun 我的意思。A,全部用原始数据,B,全部用间接数据 C,原始数据+间接数据混用。会不会出现 A 方案需要 30000 条数据才能训练好模型。而 B 方案数据用 15000 条数据就可以训练好模型? C 方案用 10000 条数据就可以训练好模型。

    或者,并不存在以上必然结论。有可能 A 方案需要的数据量最少。要试了才知道?
    limitlessun
        21
    limitlessun  
       2021-05-18 22:29:43 +08:00 via iPhone
    @huzhikuizainali 这个问题太广泛了,机器学习+深度学习的方法和模型那么多种,肯定不能一概而论,另外所谓的“间接数据”也没有一个明确定义。
    你主楼中数值计算得到的“间接数据”,这方面我不太熟悉,我的看法是其中部分会起正作用,另外一部分可能没有作用或者起到负作用。同时要注意引入新的特征相当于增加了特征的维度,而高维度的输入可能导致学习难度加大。这一块你可以搜搜“kaggle magic feature”。
    如果是我举例的神经网络中对图像做的数据增强,那么绝大多数情况都是每个 epoch 对 sample 进行随机数据增强,相当于人为引入了一些噪音,从而提高了模型的泛化能力。
    个人理解是,假设你引入的间接数据都是有用的,并且假设你增加的数据量都是 clean 的,那么两者都会提高模型的泛化能力,一般做 ablation study 都是只改变一个条件,你同时改变两者去比较意义不大。
    我建议你针对具体问题去搜一些 paper,数据处理相关应该是偏机器学习领域的,我确实了解的不多。
    huzhikuizainali
        22
    huzhikuizainali  
    OP
       2021-05-18 22:53:11 +08:00
    @limitlessun 谢谢你的回复。很有帮助。
    heavenToothpaste
        23
    heavenToothpaste  
       2021-06-07 00:59:15 +08:00
    通过你的描述我认为,原始数据和间接数据其实是指的特征维度的不同的关系,可以通过分析数据的特征之间的关系来解答你的问题:
    1.当某个维度特征是其他维度特征的线性组合的时候,在特征空间上这个维度特征是和其他特征线性相关的,也就意味着他并没有扩展特征空间,这种特征对于数据来说是可以替代的,对于大多数学习算法来说,都是可以被很好地学习的,而其数据本身如果只是单纯由已知的数据进行计算得到的话,那么其对于一般不会提升模型性能。(意味着其是冗余的);但是如果该数据是并非来自已知的数据,那么就可以为模型提供新的信息,这个信息来自于已知特征维度之间的线性或者非线性组合关系。
    2.如果某个维度特征和其他维度特征是非线性的,甚至高度非线性的,又或者是独立于其他维度特征的,那么就会带来新的信息,这时候是对于模型来说是有好处的,有可能能够提升模型的性能。
    我认为可以参考像是核方法一类的理论,都是将数据投射到更高的维度上,使得线性可分的可能性更大,从而让模型更容易找到答案。
    huzhikuizainali
        24
    huzhikuizainali  
    OP
       2021-07-02 16:29:19 +08:00
    @heavenToothpaste
    谢谢你的回复。刚看了卷积神经网络的一个小视频。不知道理解的对不对:卷积层实际上就是一个“过滤器” ,即“当某个维度特征是其他维度特征的线性组合的时候,”卷积层就把这个维度“优化掉”。这样就大大减轻了后面的神经网络层处理这些“冗余”维度数据的“压力”。达到同样的识别准确率只需要比较少的神经网络层。或者是需要的训练集更少。
    -------------------不知道这样的理解是否恰当?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:53 PVG 05:53 LAX 14:53 JFK 17:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86