全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2016-12-12 11:58:58
jameschin007 发表于 2016-12-12 11:37
随机森林应该是适应性最强的算法了。
feature 都是什么类型的?
你有查过 importance 吗?考虑去除一些 ...
给你看看我的数据吧,列名为 i 的那一列代表的是分类变量,是星座的分类,其他0和1和2的都是分类变量,其余是连续变量
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 11:59:48
@jameschin007
附件列表

1st.xlsx

大小:1.24 MB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 12:08:09
jameschin007 发表于 2016-12-9 14:02
3
4
5

这是我查的重要性

             0           1 MeanDecreaseAccuracy MeanDecreaseGini
a    0.5486983 -1.28946726          -0.97125561       7.86238877
b    5.6623997  1.22919835           3.40623045      12.33510816
c    1.9734485  2.04787132           2.82717182       3.47638176
d    0.0000000  0.00000000           0.00000000       0.01322540
e   -1.0010015  0.01030375          -0.22429652       0.62104812
f    0.0000000  0.00000000           0.00000000       0.03952830
g    0.0000000  0.00000000           0.00000000       0.02576405
h   -3.4443256  2.59117236           1.10923209      14.70970428
i   -0.3190737 -1.07377810          -1.14052936      84.14242305
j    3.0352324  1.32815240           2.56026072      68.80022886
k   -9.5479204 17.55652417          14.45057280      63.55002702
l   -6.3163023 15.69150556          13.34800844      66.69910057
m    1.8560539  2.88594129           3.24417507      29.60388690
n    4.3400200  2.68143248           4.14504447       8.87866723
r    0.7599927  3.00580742           2.99993512       8.57394828
s   -2.2959512  0.78489484          -0.22484860       1.94716585
v   -4.6894105  9.92051280           7.00823751      63.89124778
w    2.0894854  7.57999566           8.09537984      27.23288572
x   -5.7706315 12.16310235           9.85948007      44.92681384
y   -6.4069283 14.87124139          11.28092608      40.14326727
z   -2.0133191  2.42061766           1.51667167      10.53101950
aa  -0.4398691  7.58328411           7.25403725      19.89255751
ab  -2.6933727  9.39991266           7.80619067      27.93692215
ac  -0.3229390  5.80639070           5.34141664      56.86895254
ad   4.1629668  3.32327355           4.72303506      59.33540804
ae  -0.8267050  2.08648084           1.54384686       8.94919268
af -11.7219475 19.41509895          16.18025596      50.39052255
ag   0.4324896 -1.45802822          -1.31965224       1.31220928
ah  -5.1499813  9.64528533           7.83742221      16.94006805
ai  -2.0068584  1.46066455           0.55981308       0.48827429
aj   0.6109609  1.88023791           1.93660656       4.91956129
ak  15.6164846  3.20073611           9.66798866      81.33861073
al   1.8691910  1.04634248           1.74596710       6.49020152
am  -0.9364601  1.06913665           0.57501128       5.17023920
an   2.0231252 -0.89008927           0.09606978       2.25857730
ao  -9.6967578 18.45619535          16.77989733      34.58585849
ap -10.2573697 20.91459959          18.88840818      33.27237268
aq  -9.8201754 17.48395786          16.12854997      30.69501622
ar -11.9282665 17.18365556          15.35061715      30.55733007
as  -8.9907463 17.32062423          15.92298473      31.01435442
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 14:07:53
yaoqsm321 发表于 2016-12-12 11:59
@jameschin007
Rplot.png
做了一个LASSO回归,进行变量筛选。 基本在提示所有的变量基本无效。
误差最小的时候,0变量。。。。。。。。就是那条虚竖线。。。。。
这也解释了为什么你用决策树,只用了三个变量。 上面的横坐标是变量数量。 在4个变量的时候,误差下降,接近最低。。。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 14:41:39
yaoqsm321 发表于 2016-12-6 16:17
模型用途:建立模型,对客户进行分类。

数据有42个自变量,其中有多分类变量、二分类变量和连续性变量, ...
楼主试下SVM或者神经网络吧,这种属性很多而且很多分类变量的,映射比较复杂。给俩建议:
1.可以按属性归一化,当然也试试不归一化的,用效果好的方法
2.用CV或者其他启发式算法进行参数优化

顺路,记得多训练几次,还有要随机划分训练和测试集。
既然随机森林效果一般,就要尝试其他方法,不要在一棵树上吊死。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 16:52:12
yaoqsm321 发表于 2016-12-12 12:08
这是我查的重要性

             0           1 MeanDecreaseAccuracy MeanDecreaseGini
你的决策树用的C5.0吧?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:13:45
jameschin007 发表于 2016-12-12 16:52
你的决策树用的C5.0吧?
决策树用的rpart包,应该是C4.5吧,按照你上边的说法,是不是这些自变量跟因变量的相关性很小,所以才导致判断不准确?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:15:48
旧时光是个美人 发表于 2016-12-12 14:41
楼主试下SVM或者神经网络吧,这种属性很多而且很多分类变量的,映射比较复杂。给俩建议:
1.可以按属性归 ...
我总感觉是数据本身质量不行,自变量对因变量的相关性太小,可能是这个原因导致的判断不准确,感觉决策树和随机森林已经挺好的了,如果数据不行,换其他算法,我感觉也是效果不会太好
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:18:23
jameschin007 发表于 2016-12-12 14:07
做了一个LASSO回归,进行变量筛选。 基本在提示所有的变量基本无效。
误差最小的时候,0变量。。。。 ...
我做过一次相关性分析,基本上所有自变量与因变量的相关性都属于弱相关
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:18:23
jameschin007 发表于 2016-12-12 14:07
做了一个LASSO回归,进行变量筛选。 基本在提示所有的变量基本无效。
误差最小的时候,0变量。。。。 ...
我做过一次相关性分析,基本上所有自变量与因变量的相关性都属于弱相关
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:43:45
yaoqsm321 发表于 2016-12-12 17:15
我总感觉是数据本身质量不行,自变量对因变量的相关性太小,可能是这个原因导致的判断不准确,感觉决策树 ...
今天下午,基本都在看你这个数据。
基本判断是数据不平衡问题。
https://www.analyticsvidhya.com/ ... ification-problems/
http://lamda.nju.edu.cn/liyf/dm14/111220005.pdf   这篇是中文的。
建议看这几篇文章。
用rpart,效果会好一点。
推荐方法是用rose 包, 进行上采样,后者下采样。
另外,主要是精度指标。因为用mse和accurate,都无效。caret包,可以自己定义精度指标。今天太晚了,我明天可以查查。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 17:48:50
jameschin007 发表于 2016-12-12 17:43
今天下午,基本都在看你这个数据。
基本判断是数据不平衡问题。
https://www.analyticsvidhya.com/blo ...
真不知道该怎么感谢你,我现在给老板说的方案是用rpart做决策树,然后再用fisher判别来做,两个结合,可能会好一点。下边这个是用rpart做的,判断为1的准确率很高,但是数量却很少,就准备用fisher把判断为0的再去做一次分类,然后还能筛选出一部分好的应该。

result2    0    1
      0  215 1031
      1   14  299
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 11:52:38
yaoqsm321 发表于 2016-12-12 17:15
我总感觉是数据本身质量不行,自变量对因变量的相关性太小,可能是这个原因导致的判断不准确,感觉决策树 ...
既然你都“感觉”了,那我也不想再多说了。
只提一句,预测相关的话,不管是分类还是回归,如果缺少和其他方法比较的文章都是不完整的,反正我审稿时基本是直接毙掉的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 14:30:10
旧时光是个美人 发表于 2016-12-13 11:52
既然你都“感觉”了,那我也不想再多说了。
只提一句,预测相关的话,不管是分类还是回归,如果缺少和其 ...
哎,就算是数据真的不行,我也要做,没办法,做不出来就没工作了,不知道您有什么好的建议吗,我快急死了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 16:37:53
yaoqsm321 发表于 2016-12-12 17:48
真不知道该怎么感谢你,我现在给老板说的方案是用rpart做决策树,然后再用fisher判别来做,两个结合,可能 ...
SVM 有支持class weight的参数

md_svm = svm(V1~.,data = new_train,type="C-classification",kernel="radial",class.weights= c("0" = 5, "1" = 1))
> yyy= predict(md_svm,new_test)
> confusionMatrix(yyy,new_test$V1)

          Reference
Prediction   0   1
         0 130 525
         1  72 807

通过简单调节,我觉得是不错的结果。 我只选了 15,31,38 三个变量,根据变量的重要程度
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 16:54:14
jameschin007 发表于 2016-12-13 16:37
SVM 有支持class weight的参数

md_svm = svm(V1~.,data = new_train,type="C-classification",kernel= ...
其实我也觉得这个结果挺好的,但好像跟决策树的结果差不多啊,SVM也没有高级到哪去。,那随机森林的问题还是没有解决啊,虽说不能再一棵树上吊死,但是决策树、随机森林、SVM、判别分析都没有一个完美的解决, 难道是因为这个东西根本就没有完美解决的方法吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 16:56:53
jgchen1966 发表于 2016-12-6 21:36
randomForest 、SVM、等等机器学习算法,有个很关键,但常被忽视的问题:数据必须满足“独立同分布”条件 ...
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机器学习算法。机器学习算法的优势之一就是结果导向,对数据的分布没什么前提假设。如果数据真的符合独立同分布,随机森林未必比判别模型和Logit回归效果好。
推荐LZ研究下caret包,用caret包来训练随机森林效果比较好。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 19:26:17
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
。。。。。。。。。。。。。。。。。。。。。。。。。????????????????????????!!!!!!!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 21:12:05
yaoqsm321 发表于 2016-12-13 16:54
其实我也觉得这个结果挺好的,但好像跟决策树的结果差不多啊,SVM也没有高级到哪去。,那随机森林的问题还 ...
对于数据不平衡问题,随机森林确实解决的不好。 其他算法,GBM,SVM都可以。
方法主要采用过采样和欠采样的方法来实现。 有个rose包。 参见我之前给你的两个链接的文章。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 10:16:26
jgchen1966 发表于 2016-12-13 19:26
。。。。。。。。。。。。。。。。。。。。。。。。。???????????????????????? ...
随机森林的优良取决于决策树的优良和各决策树的相互独立程度,而决策树通常对于数据要求不高,见决策树的维基百科:https://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91。决策树的缺点就是对于unbalanced数据总是偏向于较多的类别,这也是随机森林的缺点。通常通过欠抽样或过抽样的方法去改善这个缺点。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 10:36:43
Random Forests


      LEO BREIMAN  (随机森林的原创者)
Statistics Department, University of California, Berkeley, CA 94720

Abstract. Random forests are a combination of tree predictors such that each tree depends on the values of a
random vector sampled independently and with the same distribution for all trees in the forest. The generalization
error for forests converges a.s. to a limit as the number of trees in the forest becomes large. The generalization
error of a forest of tree classifiers depends on the strength of the individual trees in the forest and the correlation
between them. Using a random selection of features to split each node yields error rates that compare
favorably to Adaboost (Y. Freund & R. Schapire, Machine Learning: Proceedings of the Thirteenth International
conference, ∗ ∗ ∗, 148–156), but are more robust with respect to noise. Internal estimates monitor error,
strength, and correlation and these are used to show the response to increasing the number of features used in
the splitting. Internal estimates are also used to measure variable importance. These ideas are also applicable to
regression.
此文 发表于:
    Machine Learning, 45, 5–32, 2001
c 2001 Kluwer Academic Publishers. Manufactured in The Netherlands

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 10:38:50
大一仔 发表于 2016-12-14 10:16
随机森林的优良取决于决策树的优良和各决策树的相互独立程度,而决策树通常对于数据要求不高,见决策树的 ...
请认真读上楼的 LEO BREIMAN 原创论文 ,请对他表示出足够尊重,其人虽仙去!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:13:48
jgchen1966 发表于 2016-12-14 10:38
请认真读上楼的 LEO BREIMAN 原创论文 ,请对他表示出足够尊重,其人虽仙去!!
我的观点:认真读过之后还是没发现你的论点啊,我的结论就是看了他的结论。你重点标明的地方只是说明了在构建森林时,每棵树都是用同样的方法进行的有放回抽样,这样抽样的结果就是对于每棵树来说分布自然是一样的,但是对于单一的树,数据是否独立同分布并没有影响。重点应该在“for all trees”而不是“for all sample datas”吧?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:14:18
以下大段英文 引自
      Ingo Steinwart , Andreas Christmann  :
                    Support Vector Machines
                               2008 Springer Science+Business Media, LLC
         p3

  最好地说明了机器学习对数据样本的普遍性要求

        As already mentioned informally, we assume in the machine learning approach
that we have collected a sequence D := ((x1, y1), . . . , (xn, yn)) of input/
output pairs that are used to “learn” a function f : X → Y such that
f(x) is a good approximation of the possible response y to an arbitrary x.
Obviously, in order to find such a function, it is necessary that the already
collected data D have something in common with the new and unseen data.
In the framework of statistical learning theory, this is guaranteed by assuming
that both past and future pairs (x, y) are independently generated by the same,
but of course unknown, probability distribution P on X × Y . In other words,
a pair (x, y) is generated in two steps. First, the input value x is generated
according to the marginal distribution PX. Second, the output value y is generated
according to the conditional probability P( · |x) on Y given the value
of x. Note that by letting x be generated by an unknown distribution PX,
we basically assume that we have no control over how the input values have
been and will be observed. Furthermore, assuming that the output value y to
a given x is stochastically generated by P( · |x) accommodates the fact that
in general the information contained in x may not be sufficient to determine
a single response in a deterministic manner. In particular, this assumption
includes the two extreme cases where either all input values determine an
(almost surely) unique output value or the input values are completely irrelevant
for the output value. Finally, assuming that the conditional probability
P( · |x) is unknown contributes to the fact that we assume that we do not
have a reasonable description of the relationship between the input and output
values. Note that this is a fundamental difference from parametric models,
in which the relationship between the inputs x and the outputs y is assumed
to follow some unknown function f ∈ F from a known, finite-dimensional set
of functions F.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:17:01
大一仔 发表于 2016-12-14 11:13
我的观点:认真读过之后还是没发现你的论点啊,我的结论就是看了他的结论。你重点标明的地方只是说明了在 ...
行吧!!!人人是不同的,念书的结果当然 也不同!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:25:12
jameschin007 发表于 2016-12-13 21:12
对于数据不平衡问题,随机森林确实解决的不好。 其他算法,GBM,SVM都可以。
方法主要采用过采样和欠采样 ...
我把788个小样本复制了两遍,然后加进了原数据,数据结构变成了6689个总数据,其中1为4324,0为2364个,然后用我之前的随机森林代码去建模,模型做出来的结果很好,但是我现在心里没底,不知道这种做法对不对。

prediction   0   1
         0 464  19
         1  12 859
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:25:50
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
我把788个小样本复制了两遍,然后加进了原数据,数据结构变成了6689个总数据,其中1为4324,0为2364个,然后用我之前的随机森林代码去建模,模型做出来的结果很好,但是我现在心里没底,不知道这种做法对不对。

prediction   0   1
         0 464  19
         1  12 859
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:25:57
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
我把788个小样本复制了两遍,然后加进了原数据,数据结构变成了6689个总数据,其中1为4324,0为2364个,然后用我之前的随机森林代码去建模,模型做出来的结果很好,但是我现在心里没底,不知道这种做法对不对。

prediction   0   1
         0 464  19
         1  12 859
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:25:59
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
我把788个小样本复制了两遍,然后加进了原数据,数据结构变成了6689个总数据,其中1为4324,0为2364个,然后用我之前的随机森林代码去建模,模型做出来的结果很好,但是我现在心里没底,不知道这种做法对不对。

prediction   0   1
         0 464  19
         1  12 859
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-14 11:26:26
大一仔 发表于 2016-12-13 16:56
我的观点,如果数据都符合独立同分布,传统的统计模型比如判别模型就可以很好地解决这个问题,没必要上机 ...
我把788个小样本复制了两遍,然后加进了原数据,数据结构变成了6689个总数据,其中1为4324,0为2364个,然后用我之前的随机森林代码去建模,模型做出来的结果很好,但是我现在心里没底,不知道这种做法对不对。

prediction   0   1
         0 464  19
         1  12 859
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群