Git Product home page Git Product logo

tradaboost's People

Contributors

chenchiwei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tradaboost's Issues

为什么我跑出来的结果完全不正常呢?

背景:数据是自己的数据,用SVM,DT跑过,数据很正常,预测结果也正常,数据没有缺失值。
问题:用tradadboost跑的数据的预测结果总是全1,严重怀疑tradaboost代码存在问题。
关于label:为了排除是label的错误,我把数据label放在第1列、最后一列以及trans_S,trans_A,test数据集中有无标签均进行了测试,得到的结果是一样的(预测结果全1)。
极端测试:我选择一些标签为0的数据进行训练测试,结果给出的预测还是全1→_→。
最后,还是上面问题说到的,严重怀疑tradaboost代码写的有些问题。
当然,也不能完全排除我自己代码可能存在的问题,希望能与志同道合的好友一起讨论,感激不尽。

关于模型不迭代问题

处理好自己的数据集放进去,第一轮一跑就是err rate=0,停止了迭代,看了一下代码,打印了每一部分结果,发现是调用的决策树DecisionTreeClassifier的默认函数问题,打过比赛的同学一看就会发现问题,默认参数中max_depth(树深)竟然是none。再去查看文档,果然里面提醒要设置max_depth, min_samples_leaf这两个参数,所以我令max_depth=8,min_samples_leaf=5,就可以跑通了。
文档:https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

误差计算有问题

  • 误差计算部分,也就是在calculate_error函数中,计算的结果实际上是每个弱分类器对于每次迭代的残差拟合的误差。我认为正确的误差计算应该是:在第i次迭代结束时,也就是在生成第i个弱分类器后,我们得到了弱分类器的模型以及其占有的权重,则第i次迭代之后总分类器的误差应该是从第1个到第i个弱分类器的权重乘以模型输出之和。具体参考adaboost的误差计算结果。

  • 此外,tradaboost算法中,计算误差使用的是后N/2个弱分类器的输出,忽略了前N/2个弱分类器的输出,这个地方有大神可以解释一下吗?论文中的证明虽然正确,但总感觉怪怪的

运行报错

请教一下大佬这个问题如何解决:
Error rate: 0.0
D:\Anaconda3\envs\py27\lib\site-packages\sklearn\metrics\ranking.py:542: UndefinedMetricWarning: No positive samples in y_true, true positive value should be meaningless
UndefinedMetricWarning)
auc: nan

关于源域和辅域权重的问题

你好,很抱歉,又来打扰。
看到你把源域和辅域权重的更新又修改为戴文渊paper中提到的更新方式,我想冒昧的问一下,你是在哪些数据集上做的验证证明戴的方法是可以收敛的?
我怎么是在你之前提到的权重更新方式下才能收敛,戴的方法不能收敛呢?

代码有可优化的地方

代码作者,您好。
最近又重新仔细的看了你的代码还有戴文渊的算法,发现代码中的 test (测试样本)变量对建立或者优化模型并没有任何作用,戴的算法中也没有提到关于test的 一些计算。个人认为关于test 的计算可以省去。
如:train_classify()函数中的test_data(trans_A+trans_S+test)只是用来做预测,而在预测返回的结果中只用到了result_label[row_A:row_A + row_S, i] (也就是trans_S的预测结果),trans_A和test的预测结果并没有用到,属非必要计算。
戴的算法中没有关于test的计算,个人认为可以在tradaboost()函数中去除无关参数test,没必要浪费这些时空穿参。
最后冒昧问一下,之前在另一处评论下您给回复代码晚点更新,不知道您有没有抽出来时间更新下代码。最后的最后,非常感谢您提供这么优质的代码,谢谢~

输出全为1

为什么二分类问题使用Tradaboost输出有时候会全为1呢

总是第一次循环就 break(error rate =0)

请问各位,
为什么鄙人运行出来总是第一次就break,(error_rate=0); 用拟合的模型在测试集上predict,发现AUC在0.7左右(并不是无效分类器).
难道是因为数据的问题?(也就是说不需要boosting,直接用弱学习器就能把training data学习得很好)?

请各位指点迷津,感激不尽.

处理缺失值问题

1、请问处理缺失值为什么用这个语句呢?

train_df.fillna(value=-999999)

2、不知道是不是我设置的内存不够,运行程序的时候还是报错

Traceback (most recent call last):
  File "Tradaboost_GitHub.py", line 98, in <module>
    pred = tr.tradaboost(X_train, trans_T, y_train, label_T, X_test, 10)
  File "TrAdaboost.py", line 44, in tradaboost
    result_label[:, i] = train_classify(trans_data, trans_label,test_data, P)
  File "TrAdaboost.py", line 89, in train_classify
    clf.fit(trans_data, trans_label, sample_weight=P[:, 0])
  File "sklearn\tree\tree.py", line 790, in fit
    X_idx_sorted=X_idx_sorted)
  File "sklearn\tree\tree.py", line 117, in fit
    y = check_array(y, ensure_2d=False, dtype=None)
  File "sklearn\utils\validation.py", line 422, in check_array
    _assert_all_finite(array)
  File "sklearn\utils\validation.py", line 43, in _assert_all_finite
    " or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

非常感谢给出源代码!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.