我有一个带有100+特性列的数据集。我的客户要求我从100+中选择“十大最重要的特性”。
从这个职位,我了解到随机森林可以帮助我对特性的重要性进行排序。
我的问题是,还有其他算法可以做这个工作吗?(此外,如果有人能给我介绍一些tensorflow的例子。)
为了解释,数据集是关于eCommerce的,有100+特性和一列描述“用户在网站上花了多少钱”。所谓“重要特性”,我指的是能够最好地预测用户使用的列的特性。
发布于 2019-01-31 03:33:09
您有与数据集关联的某种结果吗?所谓“十大最重要的特性”,你的意思是在实现一个特定目标时最重要吗?如果您有某种结果列(一个分数或及格/失败),您可以通过一个好的老式回归技术来解决这个问题。如果没有,您可能需要重新定义重要性的含义,并使用PCA这样的技术来查找最易变的特性。
例如,我们对30名学生进行了跟踪,看什么对通过测试、智力(IQ)或学习时间(以小时为单位)更为重要。下面的代码在R中,但我只是用它来说明这个过程。
# Generating some sample data
set.seed(300)
IQ <- as.integer(rnorm(30,mean=100,sd=10))
study_hours <- as.integer(rlnorm(30,mean=1.5,sd=0.75))
score <- as.integer(100*tanh( 0.0012*(6*IQ + 20*study_hours
+rnorm(30,mean=150,sd=10))))
IQ study_hours score
1 113 3 78
2 108 5 80
3 104 2 75
4 107 3 76
5 99 8 80
6 115 5 80
7 108 2 77
8 103 4 76
9 112 3 78
10 103 1 73
11 122 8 84
12 99 2 72
13 86 3 69
14 100 6 77
15 105 12 84
16 100 12 83
17 114 9 84
18 87 7 74
19 97 6 76
20 102 5 77
21 96 9 79
22 106 15 86
23 96 1 71
24 101 4 76
25 88 4 71
26 96 4 75
27 102 2 74
28 113 4 79
29 99 2 73
30 110 2 77
智商和学习时间似乎对考试成绩都有积极的影响。但是你怎么知道哪一个更重要?线性回归会给你一个方程,它与数据成一条直线,而直线在每个方向的斜率会给出这个特征的相对重要性。
但首先,你必须标准化数字,否则更大的一组数字(智商)会使事情变得不正常。
# Standardising the variables.
# (You take the number, subtract the mean and divide by the standard deviation)
standardisedIQ <- (IQ-mean(IQ))/sd(IQ)
standardised_study_time <- (study_hours-mean(study_hours))/sd(study_hours)
# Perform linear regression. Output variable is score and input variables are
standardised IQ and standardised study time
L <- lm(score ~ standardisedIQ + standardised_study_time)
L产出如下:
Coefficients:
(Intercept) standardisedIQ standardised_study_time
77.133 2.507 3.182这可以理解为:其他一切都一样,平均分数为77.1,智商的“效应”为2.5,学习时间为3.2。由于学习时间较长,所以在这次考试中学习时间比智商有更大的影响。
这如何转化为你的问题?在您的例子中,您有100个变量。将它们标准化,对这100个变量和结果变量进行适当的回归,并选择得分最高(绝对值)最高的10个变量。
您使用的特定类型将取决于您拥有的结果变量。如果这是一个传球/失败而不是分数,你想要使用逻辑回归。
据我所知,这样做在统计上并不完全正确。然而,如果你的客户是非数学的,并且只想要一个关于不同功能的想法,那就无关紧要了。
如果您没有任何可用的结果变量,使用PCA (主成分分析)可能会有帮助。它将突出各种特征的“可变性”或“显着性”,但它们对任何目标的重要性并不必要。请记住,使用PCA有很多注意事项,如果使用度量单位(即一个特征以米为单位,另一个以秒为单位),那么进行某种数据标准化是必要的。
https://datascience.stackexchange.com/questions/44840
复制相似问题