小编MYj*_*Yjx的帖子

在Caret包中调整随机森林的两个参数

当我只使用mtry参数作为tuingrid,它工作,但当我添加ntree参数时,错误变为Error in train.default(x, y, weights = w, ...): The tuning parameter grid should have columns mtry.代码如下:

require(RCurl)
require(prettyR)
library(caret)
url <- "https://raw.githubusercontent.com/gastonstat/CreditScoring/master/CleanCreditScoring.csv"
cs_data <- getURL(url)
cs_data <- read.csv(textConnection(cs_data))
classes <- cs_data[, "Status"]
predictors <- cs_data[, -match(c("Status", "Seniority", "Time", "Age", "Expenses", 
    "Income", "Assets", "Debt", "Amount", "Price", "Finrat", "Savings"), colnames(cs_data))]

train_set <- createDataPartition(classes, p = 0.8, list = FALSE)
set.seed(123)

cs_data_train = cs_data[train_set, ]
cs_data_test = cs_data[-train_set, ]

# Define the tuned parameter
grid …
Run Code Online (Sandbox Code Playgroud)

r machine-learning r-caret

3
推荐指数
1
解决办法
7169
查看次数

如何在sklearn中一次在多个列上应用预处理方法

我的问题是我的pandas数据框中有这么多列,我正在尝试使用sklearn-pandas库中的dataframe mapper应用sklearn预处理,例如

mapper= DataFrameMapper([
    ('gender',sklearn.preprocessing.LabelBinarizer()),
    ('gradelevel',sklearn.preprocessing.LabelEncoder()),
    ('subject',sklearn.preprocessing.LabelEncoder()),
    ('districtid',sklearn.preprocessing.LabelEncoder()),
    ('sbmRate',sklearn.preprocessing.StandardScaler()),
    ('pRate',sklearn.preprocessing.StandardScaler()),
    ('assn1',sklearn.preprocessing.StandardScaler()),
    ('assn2',sklearn.preprocessing.StandardScaler()),
    ('assn3',sklearn.preprocessing.StandardScaler()),
    ('assn4',sklearn.preprocessing.StandardScaler()),
    ('assn5',sklearn.preprocessing.StandardScaler()),
    ('attd1',sklearn.preprocessing.StandardScaler()),
    ('attd2',sklearn.preprocessing.StandardScaler()),
    ('attd3',sklearn.preprocessing.StandardScaler()),
    ('attd4',sklearn.preprocessing.StandardScaler()),
    ('attd5',sklearn.preprocessing.StandardScaler()),
    ('sbm1',sklearn.preprocessing.StandardScaler()),
    ('sbm2',sklearn.preprocessing.StandardScaler()),
    ('sbm3',sklearn.preprocessing.StandardScaler()),
    ('sbm4',sklearn.preprocessing.StandardScaler()),
    ('sbm5',sklearn.preprocessing.StandardScaler())
 ])
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有另一种更简洁的方法让我一次预处理许多变量而不用明确地写出来.

我发现有点烦人的另一件事是当我将所有pandas数据帧转换为sklearn可以使用的数组时,它们将丢失列名特征,这使得选择非常困难.有人知道如何在将pandas数据帧更改为np数组时保留列名作为键吗?

非常感谢!

python pandas scikit-learn sklearn-pandas

2
推荐指数
1
解决办法
2899
查看次数

如何在R中的do.call中添加函数的更多参数

我的问题是我如何能够为do.call函数添加更多参数.例如,我想绘制多面gridgrid.arrange,如何添加更多参数,例如ncol=3main="main title"命令do.call(grid.arrange,plots)

plot r do.call

2
推荐指数
1
解决办法
1118
查看次数

在dplyr中查找组的第二大数字

我不知道为什么代码不起作用

  dd = function(x){
  t = which.max(x[,'Sepal.Length'])
  data = x[-t,]
  m= max(data[,'Sepal.Length'])
  return(m)
}

iris %>% group_by (Species) %>% do(dd(.))
Run Code Online (Sandbox Code Playgroud)

r dplyr

1
推荐指数
2
解决办法
2868
查看次数