在R中从留白中获取P值
i具有96个观测值(患者)和1098个变量(基因)的数据框.响应是二进制(y和n),预测因子是数字.我正在尝试执行保留的交叉验证,但我的兴趣不是标准错误,而是从LOOCV创建的95个逻辑回归模型中的每个变量的p值.到目前为止,这些都是我的尝试: #Data frame 96 observations 1098 variables DF2 fit
8 2024-03-31
编程技术问答社区
在java中实现交叉验证
我使用Spring Roo + JPA + Hibernate和我想在我的应用程序中实现交叉验证(同时验证了几个字段). 我不确定如何实施它.任何人都可以告知我和/或将我引导到相关文档? 解决方案 请查看Hibernate验证器,该验证器允许实体验证(使用注释). http://www.hibernate.org/subprojects/validator.html /p> 简而言之,您通过将Hibernate验证器/JPA注释放置在其上方来注释您的字段约束. (例如@min(10)),并使用以下代码查找任何无效字段; ValidatorFactory factory = Validation.byDefaultProvider().configure().traversableResolver(new CustomTraversableResolver() ).buildValidatorFactory(); Validator validator = fa
4 2024-03-29
编程技术问答社区
attributeError:" adam"对象没有属性'构建'
创建分类模型后,我需要使用k-cross折叠验证,但是我一直遇到此错误:attributeError:'adam'对象没有属性'构建'. from scikeras.wrappers import KerasClassifier keras_clf = KerasClassifier(model = model, optimizer="adam", epochs=100, verbose=0) model_kResults = cross_validation(keras_clf, X, y, 5) print(model_kResults) print("Mean Validation Accuracy:", model_kResults["Mean Validation Accuracy"]) print("Mean Validation F1 Score:",model_kResults["Mean Validation F1 Score"]) 如何解决这个问题?您可
16 2024-03-18
编程技术问答社区
如何在Scikit-Learn中使用SelectFromoseel与Cross_validate?
我正在尝试使用SelectFromodel在训练决策策略符模型之前从数据集中选择功能.我还使用Cross_validate来评估模型性能.但是,我不确定如何一起使用这两个功能. import numpy as np from sklearn.feature_selection import SelectFromModel from sklearn.ensemble import RandomForestClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import cross_validate # Split the dataset into features and target X = dataset.drop('target_column', axis=1) # Remove 'target_column' with the actual tar
如何使用交叉验证器在不同的模型之间进行选择
我知道我可以使用交叉Validator 调整单个模型.但是,建议彼此评估不同模型的建议方法是什么?例如,说我想评估a 解决方案 在与API熟悉时,我通过实现自定义估算器将可以委派给两个或多个估计器将所选估算器由单个 param [int] .这是实际代码: import org.apache.spark.ml.Estimator import org.apache.spark.ml.Model import org.apache.spark.ml.param.Param import org.apache.spark.ml.param.ParamMap import org.apache.spark.ml.param.Params import org.apache.spark.ml.util.Identifiable import org.apache.spark.sql.DataFrame import org.apache.spark.sql.Dataset import
8 2024-03-01
编程技术问答社区
如何从CrossValidatorModel中提取最佳参数
我想找到ParamGridBuilder的参数,这些参数是Spark 1.4.x, 中交叉Validator中最佳模型的参数 在/a>在火花文档中,它们通过在管道中使用ParamGridBuilder添加不同的参数(numFeatures,regParam).然后,通过以下代码行,他们制作了最佳模型: val cvModel = crossval.fit(training.toDF) 现在,我想知道产生最佳模型的参数(numFeatures,regParam). 我已经使用以下命令而没有成功: cvModel.bestModel.extractParamMap().toString() cvModel.params.toList.mkString("(", ",", ")") cvModel.estimatorParamMaps.toString() cvModel.explainParams() cvModel.getEstimatorParamMaps.mk
16 2024-03-01
编程技术问答社区
如何在PySpark中从spark.ml中提取模型超参数?
我正在修改Pyspark文档中的一些交叉验证代码,并试图让Pyspark告诉我选择了哪种型号: from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator from pyspark.mllib.linalg import Vectors from pyspark.ml.tuning import ParamGridBuilder, CrossValidator dataset = sqlContext.createDataFrame( [(Vectors.dense([0.0]), 0.0), (Vectors.dense([0.4]), 1.0), (Vectors.dense([0.5]), 0.0), (Vectors.dense([0.6]), 1.0),
6 2024-03-01
编程技术问答社区
如何交叉验证RandomForest模型?
我想评估正在接受一些数据训练的随机森林. Apache Spark中是否有任何实用程序可以执行相同的操作,或者我必须手动执行交叉验证? 解决方案 ml提供 CrossValidator 可以用于执行交叉验证和参数搜索的类.假设您的数据已经进行了预处理,则可以添加交叉验证如下: import org.apache.spark.ml.Pipeline import org.apache.spark.ml.tuning.{ParamGridBuilder, CrossValidator} import org.apache.spark.ml.classification.RandomForestClassifier import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator // [label: double, features: vector] trainingData org.apache.
Spark CrossValidatorModel访问除bestModel以外的其他模型?
我正在使用Spark 1.6.1: 目前,我正在使用交叉Validator用各种参数训练我的ML管道.在训练过程之后,我可以使用CrossValidatorModel的最佳模型属性来获得在交叉验证期间表现最佳的模型. 交叉验证的其他模型是否会自动丢弃,还是可以选择比BestModel更糟的模型? 我之所以问,是因为我正在使用F1得分度量进行交叉验证,但我也对所有模型的称重都感兴趣,而不仅仅是在交叉验证期间表现出色的模型 val folds = 6 val cv = new CrossValidator() .setEstimator(pipeline) .setEvaluator(new MulticlassClassificationEvaluator) .setEstimatorParamMaps(paramGrid) .setNumFolds(folds) val avgF1Scores = cvModel.avgMetrics val pre
20 2024-03-01
编程技术问答社区
如何从交叉验证器中获得训练好的最佳模型
我构建了一个管道,其中包括像这样的决策者(DT) val pipeline = new Pipeline().setStages(Array(labelIndexer, featureIndexer, dt, labelConverter)) 然后,我将此管道用作交叉效能器中的估计器,以获取具有最佳的超参数集的模型 val c_v = new CrossValidator().setEstimator(pipeline).setEvaluator(new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction")).setEstimatorParamMaps(paramGrid).setNumFolds(5) 最后,我可以使用此交叉Validator培训模型 val model = c_v.fit(train) 但问题是,我想查看
14 2024-02-29
编程技术问答社区
SparkML交叉验证是否只对 "标签 "列起作用?
当我运行交叉验证时在 的列中具有标签,名为"标签",我在Spark 3.1.1上观察到了一个iLlegalargumentException.为什么? 以下代码已修改为将"标签"列重命名为"目标",并且标签已将回归模型的"目标"设置为"目标".此代码导致例外,而将所有内容留在"标签"上正常工作. from pyspark.ml import Pipeline from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator from pyspark.ml.feature import HashingTF, Tokenizer from pyspark.ml.tuning import CrossValidator, ParamGridBuilder training = spark.createDat
6 2024-02-29
编程技术问答社区
次优早停防止机器学习中的过度拟合?
我一直在使用XGBoost的早期停止功能来用于各种问题语句,主要是分类.但是,在处理不同域的几个数据集 的数据集时,我有以下观察结果 在最小评估错误的位置,但是在火车和测试之间的差异(用于停止训练回合的评估)之间的差异相对较高,该模型似乎表现似乎已经过度合适. 在这种情况下,当我考虑在训练和测试(训练期间的评估数据)中停止训练回合时相似(尽管评估错误不是最低限度),则模型的性能更好,并且根据错误项估计. 因此,问题是:训练回合的数量是否应比最佳点要早得多(尽管验证错误较低,但火车和测试之间存在很高的差异误差(eval)? 请假设,已经采取了每一个护理,以正确将数据集拆分以进行火车,测试,验证等. 谢谢. 解决方案 XGBOOST在XGBoost中的早期停止工作如下: 它浏览了您的"守望列表"的最后元组(通常是将验证/测试集放置) 它通过您的评估指标评估此设置 如果此评估没有更改x> x = early_stopping_rounds)
6 2023-12-20
编程技术问答社区
带有GridSearchCV的Python-LightGBM,正在永久运行
最近,我正在进行多个实验来比较Python XGBoost和LightGBM.看来,这种LightGBM是一种新算法,人们说它在速度和准确性上都比XGBoost更好. 这是 lightgbm github . 这是 lightgbm python api文档可以打电话.它可以直接从LightGBM模型调用,也可以由LightGBM Scikit-Learn调用. 这是 xgboost python api i使用.如您所见,它具有与上面的LightGBM Python API相似的数据结构. 这是我尝试的: 如果您在XGBoost和LightGBM中都使用train()方法,则LightGBM的工作速度更快,精度更高.但是这种方法没有交叉验证. 如果您在两种算法中尝试cv()方法,则用于交叉验证.但是,我找不到使用它的方法返回一组最佳参数. 如果您尝试使用LGBMClassifier和XGBClassifer尝试Scikit-Learn GridSearchC
26 2023-12-20
编程技术问答社区
XgBoost : y中人口最少的类只有1个成员,这太少了
IM在Sklearn上使用XGBOOST实现来进行Kaggle的竞争. 但是,我收到此"警告"消息: $ python Script1.py /home/sky/private/virtualenv15.0.1dev/myVE/local/lib/python2.7/site-packages/sklearn/cross_validation.py:516: Warning: The least populated class in y has only 1 members, which is too few. The minimum number of labels for any class cannot be less than n_folds=3. % (min_labels, self.n_folds)), Warning) 根据stackoverflow上的另一个问题: 检查您每个班级至少有3个样本可以使用k == 3进行Stratifiedkfold
16 2023-12-20
编程技术问答社区
为什么xgboost.cv和sklearn.cross_val_score的结果不同?
我正在尝试在数据集上制作分类器.我首先使用XGBoost: import xgboost as xgb import pandas as pd import numpy as np train = pd.read_csv("train_users_processed_onehot.csv") labels = train["Buy"].map({"Y":1, "N":0}) features = train.drop("Buy", axis=1) data_dmat = xgb.DMatrix(data=features, label=labels) params={"max_depth":5, "min_child_weight":2, "eta": 0.1, "subsamples":0.9, "colsample_bytree":0.8, "objective" : "binary:logistic", "eval_metric": "logloss"} rounds
18 2023-12-20
编程技术问答社区
如何在R包XGBoost中为xgb.cv指定训练和测试指数?
我最近在xgb.cv中找到了有关folds参数,该参数允许人们指定验证集的索引.然后在xgb.cv中调用辅助函数xgb.cv.mknfold,然后将每个折叠的剩余索引作为相应折叠的训练集的索引. 问题:我可以通过XGBoost接口中的任何接口指定培训和验证索引吗? 我的主要动机是执行时间序列交叉验证,我不希望将"非验证"指数自动分配为培训数据.一个示例来说明我想做什么: # assume i have 100 strips of time-series data, where each strip is X_i # validate only on 10 points after training fold1: train on X_1-X_10, validate on X_11-X_20 fold2: train on X_1-X_20, validate on X_21-X_30 fold3: train on X_1-X_30, validate on X
16 2023-12-20
编程技术问答社区
在SciKit-Learn中使用交叉验证的网格搜索和早期停止。
我对Sci-kit学习是很陌生的,并且一直在尝试超越paramater tune xgboost.我的目的是使用早期停止和网格搜索来调整模型参数,并使用早期停止来控制树的数量并避免过度拟合. 当我使用交叉验证进行网格搜索时,我希望在早期停止标准中使用交叉验证.到目前为止,我的代码看起来像这样: import numpy as np import pandas as pd from sklearn import model_selection import xgboost as xgb #Import training and test data train = pd.read_csv("train.csv").fillna(value=-999.0) test = pd.read_csv("test.csv").fillna(value=-999.0) # Encode variables y_train = train.price_doc x_train = train
26 2023-12-20
编程技术问答社区
了解python xgboost cv
我想使用XGBoost CV函数为我的培训数据集找到最佳参数.我对API感到困惑.如何找到最佳参数?这是否类似于Sklearn grid_search交叉验证函数?我如何找到最佳的max_depth参数([2,4,6])的哪些选项? from sklearn.datasets import load_iris import xgboost as xgb iris = load_iris() DTrain = xgb.DMatrix(iris.data, iris.target) x_parameters = {"max_depth":[2,4,6]} xgb.cv(x_parameters, DTrain) ... Out[6]: test-rmse-mean test-rmse-std train-rmse-mean train-rmse-std 0 0.888435 0.059403 0.888052 0.0
28 2023-12-20
编程技术问答社区
为Weka中的交叉验证保留顺序
我正在使用WEKA GUI进行传感器数据分类. 我有10人的措施,数据已分类.因此,第一个10%对应于参与者1,第二个10%与参与者2等. 我想使用10倍的交叉验证在9名参与者上构建模型,并在其余参与者上对其进行测试.就我而言,我相信我可以通过不随机将数据拆分来实现这一目标. 我将如何最好地做到这一点? 解决方案 我不知道该如何在资源管理器中做到这一点. 在知识流 gui中,有一个 crossvalidationfoldmaker 用于创建交叉验证褶皱.这可以选择保留实例订单,它说它保留了实例的顺序而不是随机改组. 有一个视频在此处描述知识流界面:
22 2023-12-03
编程技术问答社区
交叉验证-Weka api
如何使用WEKA API通过10倍的交叉验证制作分类模型?我问这个问题,因为每个交叉验证运行都创建了一个新的分类模型.我在测试数据中应该使用哪种分类模型? 解决方案 使用10倍的交叉验证,以获取分类器准确性的估计值,如果分类器应根据所有培训数据构建.当感觉到没有足够的数据来进行独立测试集时使用它.这意味着您应该在预测未来数据的情况下从所有培训数据中构建一个新模型. 10倍交叉验证的结果猜测您的新分类器的性能如何. 以下代码显示了通过API使用WEKA的交叉验证,然后从整个培训数据集中构建新模型的示例. //Training instances are held in "originalTrain" Classifier c1 = new NaiveBayes(); Evaluation eval = new Evaluation(originalTrain); eval.crossValidateModel(c1, originalT
20 2023-12-03
编程技术问答社区