小编use*_*321的帖子

如何提高随机森林的表现?

我的大小38 MB的训练集(12个属性与420000行).我运行下面的R代码片段,训练使用模型randomForest.这对我来说需要几个小时.

rf.model <- randomForest(
              Weekly_Sales~.,
              data=newdata,
              keep.forest=TRUE,
              importance=TRUE,
              ntree=200,
              do.trace=TRUE,
              na.action=na.roughfix
            )
Run Code Online (Sandbox Code Playgroud)

我认为,由于na.roughfix,它是需要长时间来执行.有这么多的NA's训练集中.

可能有人让我知道我怎么能提高性能?

我的系统配置是:

Intel(R) Core i7 CPU @ 2.90 GHz
RAM - 8 GB
HDD - 500 GB
64 bit OS
Run Code Online (Sandbox Code Playgroud)

performance r random-forest

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

如何将逻辑变量转换为 Rattle 中的因子

我正在使用 Rattle 来运行randomForest我的训练数据集。其中一个变量具有值FALSETRUE

     > str(mydata)
     'data.frame':  421570 obs. of  2 variables:
     $ Trial       : int  1 1 1 1 1 1 1 1 1 1 ...
     $ IsHoliday   : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
Run Code Online (Sandbox Code Playgroud)

我能够将其转换为 R 中的一个因子。

     > mydata$IsHoliday <- factor(mydata$IsHoliday)
     > str(mydata)
     'data.frame':  421570 obs. of  2 variables:
     $ Trial       : int  1 1 1 1 1 1 1 1 1 1 ...
     $ IsHoliday   : Factor w/ 2 levels …
Run Code Online (Sandbox Code Playgroud)

r rattle

5
推荐指数
1
解决办法
8656
查看次数

pySpark - 在滚动窗口中获取最大值行

我有一个 pyspark 数据框,下面是示例行。我试图在 10 分钟内获得最大平均值。我正在尝试使用 Window 函数,但无法实现结果。

这是我的数据框,其中包含 30 分钟的随机数据。我希望输出 3 行,每 10 分钟输出 1 行。

+-------------------+---------+
|         event_time|avg_value|
+-------------------+---------+
|2019-12-29 00:01:00|      9.5|
|2019-12-29 00:02:00|      9.0|
|2019-12-29 00:04:00|      8.0|
|2019-12-29 00:06:00|     21.0|
|2019-12-29 00:08:00|      7.0|
|2019-12-29 00:11:00|      8.5|
|2019-12-29 00:12:00|     11.5|
|2019-12-29 00:14:00|      8.0|
|2019-12-29 00:16:00|     31.0|
|2019-12-29 00:18:00|      8.0|
|2019-12-29 00:21:00|      8.0|
|2019-12-29 00:22:00|     16.5|
|2019-12-29 00:24:00|      7.0|
|2019-12-29 00:26:00|     14.0|
|2019-12-29 00:28:00|      7.0|
+-------------------+---------+
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码

window_spec = Window.partitionBy('event_time').orderBy('event_time').rangeBetween(-60*10,0)
new_df = data.withColumn('rank', rank().over(window_spec))
new_df.show()
Run Code Online (Sandbox Code Playgroud)

但这段代码给了我以下错误:

pyspark.sql.utils.AnalysisException: 'Window Frame specifiedwindowframe(RangeFrame, …
Run Code Online (Sandbox Code Playgroud)

dataframe apache-spark pyspark

3
推荐指数
2
解决办法
1473
查看次数