回复 1楼microsat的帖子 楼主你去看看model selection吧。有一套步骤和算法可以做,比如stepwise。 zhangaa2004 发表于 2022-06-09 15:26
准备做回归分析或者机器学习。 目标变量已经确定。只有一个。 输入变量太多,几千个变量。sex,age,education,zipcode,基因,等等。 请问如何从这几千个变量中挑出一些出来,作为模型回归或者学习的变量。 我现在用 y~x (x是一个单变量),来计算出pvalue,pvalue小,就说明这个变量值得保留作为回归的变量。 但是,我最近,听说一种观点。基因都是组网工作的,一些单独工作时pvalue很高的基因,并不意味着不值得引入模型。 这个说法,就如同挑选学生做工程,理论上按照成绩进行挑。如果你挑选学习好的学生来完成一个工程,然后你发现有个学习成绩不好的女学生,你如果引进,会更好。因为男女搭配,干活不累。 如果是这样的话,请问,我该如何从几千个变量中找出需要的变量作为回归模型的变量呢? 谢谢! microsat 发表于 2022-06-09 15:22
回复 13楼长影的帖子 会有多重共线性。这样模型就不对了。 PeterinLA 发表于 2022-06-09 17:30
不用逻辑回归 比如tree based, 或者nn model. 那还会受影响嘛 长影 发表于 2022-06-09 17:51
跑个结果试试看好了 如果categorical的多 那就上lightGBM 如果都是numerical / binary的 那就上XGBoost 然后丢掉feature importance绝对值小的然后继续迭代;SageMaker也有工具帮你选;除非是纯粹的time series 不然一开始先不要尝试nn model; 有time series可以用kernal 做moving window提取变量放到tree based model里面学; 另外你也没说你的model 背景; 有没有model auditor要给他们做validation / document?他们会很picky为啥选这些数据/能不能用;还是说自己own的model 能跑出结果就行? 这么多feature是怎么弄出来的?如果是timeseries自己aggregate出来的 那倒是可以试试LSTM / auto-regression等专门处理time series的model 你的模型打算怎么跑?是要放到专门的platform online score 还是自己在机器上batch evaluation?如果是前者 那你还要看啥数据latency太大要踢掉;后者的话 你开心就好了 lonesun 发表于 2022-06-09 18:03
请问如何从这几千个变量中挑出一些出来,作为模型回归或者学习的变量。
我现在用 y~x (x是一个单变量),来计算出pvalue,pvalue小,就说明这个变量值得保留作为回归的变量。
但是,我最近,听说一种观点。基因都是组网工作的,一些单独工作时pvalue很高的基因,并不意味着不值得引入模型。
这个说法,就如同挑选学生做工程,理论上按照成绩进行挑。如果你挑选学习好的学生来完成一个工程,然后你发现有个学习成绩不好的女学生,你如果引进,会更好。因为男女搭配,干活不累。
如果是这样的话,请问,我该如何从几千个变量中找出需要的变量作为回归模型的变量呢?
谢谢!
楼主你去看看model selection吧。有一套步骤和算法可以做,比如stepwise。
不是选择model,是选择变量。
先单独变化其中一个变量,其他变量不变,看目标对这个变量是不是敏感,然后依次类推,用这个方法找出一些敏感的变量作为学习变量。这个办法对有互作用的变量不够好,但作为起步分析还是不错的。
"果你挑选学习好的学生来完成一个工程,然后你发现有个学习成绩不好的女学生,你如果引进,会更好。因为男女搭配,干活不累."
你这个例子好,完美的解释了Interaction effect。
首先你要看你的原始数据,对于原始数据要有一定的把握。数据都是什么,你有多少样本量,留多少自由度等等。自己研究的题目是什么。这样才能有所选择。
然后做描述性统计,相关系数分析,协方差都看看。
这些准备工作做好,才能开始弄模型。前面的工作不做好,后面模型根本做不出来。
看楼主对层主的回复,也能估计没有看过类似的书。不过话说要面ds工作,这个是一定要准备的问题之一。
对模型是好的嘛?有啥坏作用吗?还是说应该尽量挑不相关的变量呢
会有多重共线性。这样模型就不对了。
不用逻辑回归 比如tree based, 或者nn model. 那还会受影响嘛
只能说对linear model 不对了 但是tree based model 还是可以的
跑个结果试试看好了 如果categorical的多 那就上lightGBM 如果都是numerical / binary的 那就上XGBoost 然后丢掉feature importance绝对值小的然后继续迭代;SageMaker也有工具帮你选;除非是纯粹的time series 不然一开始先不要尝试nn model; 有time series可以用kernal 做moving window提取变量放到tree based model里面学;
另外你也没说你的model 背景; 有没有model auditor要给他们做validation / document?他们会很picky为啥选这些数据/能不能用;还是说自己own的model 能跑出结果就行? 这么多feature是怎么弄出来的?如果是timeseries自己aggregate出来的 那倒是可以试试LSTM / auto-regression等专门处理time series的model 你的模型打算怎么跑?是要放到专门的platform online score 还是自己在机器上batch evaluation?如果是前者 那你还要看啥数据latency太大要踢掉;后者的话 你开心就好了
你挑选变量没有理论的? 你的理论有了当然就知道挑些什么变量了。 要不然不是garbage in garbage out?
谢谢! 这些变量是来自于Next Generation Sequencing。每个变量其实是一个基因,或者一个变异。 现在的目的,就是通过这些基因,或者变异,来判断和预测一个人是不是得了癌症。
这些基因和变异总共加起来有5百万个。我已经过滤掉了许多,最后剩下3000个左右。我需要从这3000个里面,再挑出300个出来。
如何挑选。