我想解析a中的日期列DataFrame,对于每个日期列,日期的分辨率可能会发生变化(例如,如果分辨率设置为"月",则为2011/01/10 => 2011/01).
我写了以下代码:
def convertDataFrame(dataframe: DataFrame, schema : Array[FieldDataType], resolution: Array[DateResolutionType]) : DataFrame =
{
import org.apache.spark.sql.functions._
val convertDateFunc = udf{(x:String, resolution: DateResolutionType) => SparkDateTimeConverter.convertDate(x, resolution)}
val convertDateTimeFunc = udf{(x:String, resolution: DateResolutionType) => SparkDateTimeConverter.convertDateTime(x, resolution)}
val allColNames = dataframe.columns
val allCols = allColNames.map(name => dataframe.col(name))
val mappedCols =
{
for(i <- allCols.indices) yield
{
schema(i) match
{
case FieldDataType.Date => convertDateFunc(allCols(i), resolution(i)))
case FieldDataType.DateTime => convertDateTimeFunc(allCols(i), resolution(i))
case _ => allCols(i)
}
}
}
dataframe.select(mappedCols:_*)
}}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.似乎我只能将 …
深度确定性政策梯度(DDPG)是动作空间连续时强化学习的最先进方法.其核心算法是确定性策略梯度.
然而,在阅读了论文并听取了谈话之后(http://techtalks.tv/talks/deterministic-policy-gradient-algorithms/61098/),我仍然无法弄清楚确定性PG比Stochastic PG的基本优势是什么.谈话说它更适合高维动作并且更容易训练,但为什么呢?
我有:
key value
a [1,2,3]
b [2,3,4]
Run Code Online (Sandbox Code Playgroud)
我想要:
key value1 value2 value3
a 1 2 3
b 2 3 4
Run Code Online (Sandbox Code Playgroud)
似乎在scala我可以写:df.select($"value._1", $"value._2", $"value._3"),但在python中是不可能的.
那么有一个很好的方法吗?
我们尝试用括号[column name],单引号和双引号以及反引号来包装列名,但它们都不起作用.
Spark SQL是否支持名称中包含空格的列?
谢谢!
我正在尝试对数据集进行分类。我首先使用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 = 180
result = xgb.cv(params=params, dtrain=data_dmat, num_boost_round=rounds, early_stopping_rounds=50, as_pandas=True, seed=23333)
print result
Run Code Online (Sandbox Code Playgroud)
结果是:
test-logloss-mean test-logloss-std train-logloss-mean
0 0.683539 0.000141 0.683407
179 0.622302 0.001504 0.606452
Run Code Online (Sandbox Code Playgroud)
我们可以看到它在0.622左右。
但是当我切换为sklearn使用完全相同的参数(我认为)时,结果却大不相同。下面是我的代码:
from sklearn.model_selection import cross_val_score
from xgboost.sklearn import XGBClassifier
import pandas as pd …Run Code Online (Sandbox Code Playgroud) python machine-learning scikit-learn cross-validation xgboost
我无法理解on-policy方法(如A3C)和off-policy方法(如DDPG)之间的根本区别是什么.据我所知,无论行为政策如何,非政策方法都可以学习最优政策.它可以通过观察环境中的任何轨迹来学习.因此,我可以说非政策方法比政策方法更好吗?
我已经阅读了悬崖行走的例子,显示了SARSA和之间的区别Q-learning.它表示Q-learning将学习沿着悬崖行走的最佳政策,同时SARSA学会在使用epsilon-greedy政策时选择更安全的方式.但既然Q-learning已经告诉我们最优政策,为什么我们不遵循这一政策而不是继续探索?
另外,两种学习方法的情况是否优于另一种?在哪种情况下,人们更喜欢on-policy算法?
我的服务器只有一个ipv6地址,我的电脑可以ssh通过这个地址直接访问。但是当我尝试在 Pycharm 的这台服务器上添加远程解释器时,它告诉我SFTP host is invalid什么时候看到 ipv6 地址。
我怎样才能让它工作?谢谢!
更新:添加括号[2001:da8:...]有助于通过主机语法检查。但是现在单击“确定”后,Pycharm 会告诉我“java.net.SocketException:协议系列不可用”。这个怎么通过?
apache-spark ×2
ipv6 ×1
pycharm ×1
pyspark ×1
python ×1
q-learning ×1
scala ×1
scikit-learn ×1
xgboost ×1