为了实现无监督的随机森林学习 - 我想将训练好的数据标记为干净,并根据该数据创建假数据,但是它的特征之间存在异常,因此模型会将这些行检测为异常 . 类似于使用功能列(向量)上的rdd执行的操作:
columns = df.first()
new_df = None
for i in range(0, len(columns)):
column = df.sample(withReplacement=True, fraction=fraction) \
.map(lambda row: row[i]) \
.zipWithIndex() \
.map(lambda e: (e[1], [e[0]]))
if new_df is None:
new_df = column
else:
new_df = new_df.join(column)
new_df = new_df.map(lambda e: (e[0], e[1][0] + e[1][1]))
return new_df.map(lambda e: e[1])
但我想用dataframe API实现它,而不是用rdd . 有谁知道如何做到这一点?我认为使用dataframe api执行它会在pyspark上快得多....