为了将我的数据分成火车和测试数据,我正在使用
sklearn.cross_validation.train_test_split 功能.
当我将数据和标签作为列表列表提供给此函数时,它会在两个单独的列表中返回列车和测试数据.
我想从原始数据列表中获取列车的索引和测试数据元素.
任何人都可以帮我解决这个问题吗?
提前致谢
我使用RandomForestClassifierfrom执行拟合操作sklearn:
clf.fit(X_train,y_train,sample_weight=weight)
Run Code Online (Sandbox Code Playgroud)
我不知道如何更改评估指标,我认为这只是准确性。
我问这个是因为我已经看到使用XGBOOST包可以精确地指定这个指标。例子:
clf.fit(X_train, y_train, eval_metric="auc", eval_set=[(X_eval, y_eval)])
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:我可以对RandomForestClassifierfrom做同样的事情吗sklearn?我需要将我的表现建立在AUC指标上。
我正在使用XGBoost它sklearn的包装.
每当我尝试打印时feature_importances_,都会出现以下错误:
ValueError:具有基数10的int()的无效文字
深入研究代码我发现该feature_importances_ 属性是从原始助推器调用get_fscore 方法(带空params).此方法显式返回如下形状的字典:
{'feat_name1':5,'feat_name2':8,...,'feat_nameN':1}
Run Code Online (Sandbox Code Playgroud)
因此,考虑到feature_importances_应用int转换到键会发现错误的消息基本原理.
keys = [int(k.replace('f', '')) for k in fs.keys()] #this is the conflictive line of code
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是双重折叠的:
1- 这是一个错误,因此我应该报告它(甚至修复它并请求拉动)?
2-这个get_fscore函数及其fmap参数是否缺少?