Questions tagged «random-forest»

随机森林是一种机器学习分类器,其基础是为每棵树选择变量的随机子集,并使用最频繁的树输出作为整体分类。

6
字符串作为决策树/随机森林中的特征
我在决策树/随机森林的应用程序上遇到了一些问题。我正在尝试解决一个以数字和字符串(例如国家/地区名称)为特征的问题。现在的库scikit-learn仅将数字作为参数,但是我想注入字符串,因为它们具有大量的知识。 如何处理这种情况? 我可以通过某种机制将字符串转换为数字,例如Python中的哈希。但是我想知道有关如何在决策树问题中处理字符串的最佳实践。

7
ValueError:输入包含NaN,无穷大或dtype('float32')太大的值
使用RandomForest模型预测测试数据时出现ValueError。 我的代码: clf = RandomForestClassifier(n_estimators=10, max_depth=6, n_jobs=1, verbose=2) clf.fit(X_fit, y_fit) df_test.fillna(df_test.mean()) X_test = df_test.values y_pred = clf.predict(X_test) 错误: ValueError: Input contains NaN, infinity or a value too large for dtype('float32'). 如何在测试数据集中找到不良值?另外,我不想删除这些记录,我可以将它们替换为均值或中位数吗? 谢谢。

1
为什么xgboost比sklearn GradientBoostingClassifier快得多?
我正在尝试通过50个具有100个数字特征的示例训练一个梯度提升模型。XGBClassifier我的机器43秒内把手500棵树,而GradientBoostingClassifier只处理10棵(!)以1分2秒:(我没有理会试图种植500棵树,因为它会需要几个小时。我使用的是相同的learning_rate,并max_depth设置, 见下文。 是什么使XGBoost如此之快?它是否使用了sklearn家伙不知道的用于梯度增强的新颖实现方式?还是“偷工减料”并种植浅树? ps我知道这个讨论:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey,但是那里找不到答案... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 


3
从MultiOutputClassifier了解predict_proba
我正在scikit-learn网站上跟踪此示例,以使用随机森林模型执行多输出分类。 from sklearn.datasets import make_classification from sklearn.multioutput import MultiOutputClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.utils import shuffle import numpy as np X, y1 = make_classification(n_samples=5, n_features=5, n_informative=2, n_classes=2, random_state=1) y2 = shuffle(y1, random_state=1) Y = np.vstack((y1, y2)).T forest = RandomForestClassifier(n_estimators=10, random_state=1) multi_target_forest = MultiOutputClassifier(forest, n_jobs=-1) multi_target_forest.fit(X, Y).predict(X) print(multi_target_forest.predict_proba(X)) 由此predict_proba我得到2个5x2数组: [array([[ …


4
随机森林过度拟合吗?
我一直在阅读有关随机森林的文章,但是我真的找不到关于过度拟合问题的明确答案。根据Breiman的原始论文,当增加森林中的树木数量时,它们不应过拟合,但似乎对此尚未达成共识。这使我对此问题颇为困惑。 也许比我更专业的人可以给我一个更具体的答案,或者为我指明正确的方向,以便更好地理解问题。

3
使用随机森林进行建模是否需要交叉验证?
据我所知,人们对此的看法往往有所不同。最佳实践肯定会规定使用交叉验证(尤其是将RF与同一数据集上的其他算法进行比较时)。另一方面,原始消息来源指出,在模型训练期间计算出OOB误差这一事实足以说明测试集的性能。甚至特雷弗·哈斯提(Trevor Hastie)在最近的一次对话中都说“随机森林提供免费的交叉验证”。直观地,如果在一个数据集上训练并尝试改进基于RF的模型,这对我来说很有意义。 有人可以提出支持和反对使用随机森林进行交叉验证的论点吗?

2
如何提高分类器的准确性?
我正在使用OpenCV letter_recog.cpp示例来对随机树和其他分类器进行实验。此示例具有六个分类器的实现-随机树,boosting,MLP,kNN,朴素贝叶斯和SVM。使用具有20000个实例和16个功能的UCI字母识别数据集,我将其分为两半进行训练和测试。我具有SVM的经验,因此我迅速将其识别错误设置为3.3%。经过一些试验,我得到的是: UCI字母识别: RTrees-5.3% 提升-13% MLP-7.9% kNN(k = 3)-6.5% 贝叶斯-11.5% 支持向量机-3.3% 使用的参数: RTrees-max_num_of_trees_in_the_forrest = 200,max_depth = 20,min_sample_count = 1 提升-boost_type = REAL,weak_count = 200,weight_trim_rate = 0.95,max_depth = 7 MLP-method = BACKPROP,param = 0.001,max_iter = 300(默认值-太慢无法进行实验) kNN(k = 3)-k = 3 贝叶斯-无 SVM-RBF内核,C = 10,gamma = 0.01 之后,我使用相同的参数并通过首先提取梯度特征(向量大小为200个元素)对Digits和MNIST数据集进行了测试: 位数: RTrees-5.1% 提升-23.4% …

5
选择二进制分类算法
我有一个二进制分类问题: 训练集中约有1000个样本 10个属性,包括二进制,数字和分类 哪种算法是解决此类问题的最佳选择? 默认情况下,我将从SVM(将标称属性值转换为二进制特征的初步方法)开始,因为它被认为是相对干净和无噪声数据的最佳选择。

5
扩大seaborn热图
我corr()用原始df 创建了df。该corr()DF出来70×70,这是不可能的可视化热图... sns.heatmap(df)。如果我尝试显示corr = df.corr(),则表格不适合屏幕,并且我可以看到所有相关性。它是打印整个df大小而不管其大小还是控制热图大小的方法吗?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

1
RandomForestClassifier OOB评分方法
scikit-learn中的随机森林实现是否使用平均精度作为其评分方法来估计袋装样本的泛化误差?文档中未提及,但score()方法报告平均准确度。 我有一个高度不平衡的数据集,并且我在网格搜索中使用ROC的AUC作为评分标准。有没有办法告诉分类器对OOB样本也使用相同的评分方法?

1
是否需要分层抽样(随机森林,Python)?
我使用Python在不平衡的数据集上运行随机森林模型(目标变量是一个二进制类)。在拆分训练和测试数据集时,我很难避免是否使用分层抽样(如所示的代码)。到目前为止,我在项目中观察到分层案例将导致更高的模型性能。但是我认为,如果我将使用我的模型来预测新案例,那么新案例的目标类与当前数据集的分布很可能会有所不同。因此,我倾向于放宽此限制,并使用未分层的拆分。任何人都可以建议以澄清这一点吗? train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

1
使用随机森林采样多少个特征
引用“统计学习的要素”的维基百科页面显示: 通常,对于具有特征的分类问题 ,每个分割中都使用特征。⌊ √ppp⌊ p–√⌋⌊p⌋\lfloor \sqrt{p}\rfloor 我知道这是一个相当有根据的猜测,并且可能已得到经验证据的证实,但是还有其他原因导致人们选择平方根吗?那里有统计现象吗? 这是否有助于减少误差的方差? 回归和分类是否相同?

5
scikit-learn随机森林的功能重要性显示出很高的标准偏差
我正在使用scikit-learn随机森林分类器,并且想要绘制功能重要性,例如在本示例中。 但是,从某种意义上说,我的结果是完全不同的,在某种意义上,特征重要性标准差几乎总是大于特征重要性本身的(见附图)。 可能会有这种行为,或者我在绘制图形时犯了一些错误? 我的代码如下: import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(predictors.values, outcome.values.ravel()) importance = clf.feature_importances_ importance = pd.DataFrame(importance, index=predictors.columns, columns=["Importance"]) importance["Std"] = np.std([tree.feature_importances_ for tree in clf.estimators_], axis=0) x = range(importance.shape[0]) y = importance.ix[:, 0] yerr = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.