如何在Pyspark中安装多层感知器分类器?
您好,我正在尝试使用PySpark 2.4.3机器学习库安装多层感知器。但每次我尝试拟合算法时,都会出现以下错误: Py4JJavaError:调用o4105.fit时出错。 :org.apache.SparkException:作业因阶段失败而中止:阶段784.0中的任务0失败4次,最近的失败:阶段784.0中的任务0.3丢失(TID 11663,hdpdncwy87013.dpp.acxiom.net,executor 1):org.apache.spark.SparkException:无法执行用户定义的函数($anonfun$org$apache$spark$ml$feature$onehotcodermodel$$encoder$1:(double,int)=>struct,values:array>) 位于org.apache.spark.sql.catalyst.expressions.GeneratedClass$GenerateEditorForCodeGenStage1.processNext(未知源)如何在Pyspark中安装多层感知器分类器?,pyspark,deep-learning,neural-network,perceptron,multi-layer,Pyspark,Deep Learning,Neural Network,Perceptron,Multi Layer,您好,我正在尝试使用PySpark 2.4.3机器学习库安装多层感知器。但每次我尝试拟合算法时,都会出现以下错误: Py4JJavaError:调用o4105.fit时出错。 :org.apache.SparkException:作业因阶段失败而中止:阶段784.0中的任务0失败4次,最近的失败:阶段784.0中的任务0.3丢失(TID 11663,hdpdncwy87013.dpp.acxiom.net,executor 1):org.apache.spark.SparkException:无
你有什么想法吗?提前谢谢你。输入数1902,要预测的类数5。这是一个老问题,但我们现在遇到了完全相同的错误。我们对二进制分类没有任何问题,但我们对多类分类问题抛出了此异常,就像你的一样 对于我们来说,多类别分类的问题是我们的标签是
1,2,3
。结果表明,MultiLayerPerceptron希望标签从0开始。因此,当我们从标签中减去1时(使其为0,1,2),模型训练成功,没有任何异常。如果您在非零标签的多类分类问题中遇到此异常,则这可能是您的问题
希望这能节省一些人几个小时的调试时间。这是一个老问题,但我们现在遇到了完全相同的错误。我们在二进制分类方面没有任何问题,但我们在多类分类问题上引发了此异常,就像您的问题一样 对于我们来说,多类别分类的问题是我们的标签是
1,2,3
。结果表明,MultiLayerPerceptron希望标签从0开始。因此,当我们从标签中减去1时(使其为0,1,2),模型训练成功,没有任何异常。如果您在非零标签的多类分类问题中遇到此异常,则这可能是您的问题
希望这能节省一些人数小时的调试时间
df = sqlContext.read.format("csv").options(header='true', sep=",", inferschema='true').load(location)
exclude = ["Target"]
inputs = [column for column in df.columns if (column not in exclude)]
vectorAssembler = VectorAssembler(inputCols=inputs, outputCol='Features')
vdf = vectorAssembler.transform(df)
vdf = vdf.select(['Features'] + exclude)
# Feature Scaling
scaler = MinMaxScaler(inputCol="Features", outputCol="scaledFeatures")
scalerModel = scaler.fit(vdf)
scaledData = scalerModel.transform(vdf)
# train-test split
splits = scaledData.randomSplit([0.7, 0.3], seed=2020)
train_df = splits[0]
test_df = splits[1]
layers = [len(inputs), 3, 3, 3, 5]
mlpc = MultilayerPerceptronClassifier(labelCol="Target", featuresCol="scaledFeatures", layers=layers,
blockSize=128, stepSize=0.03, seed=2020, maxIter=1000)
model = mlpc.fit(train_df)