내 멀티 레이어 퍼셉트론 분류기를 교육하고 있습니다. 여기 내 훈련 세트가 있습니다. 기능은 스파 스 벡터 형식입니다. 모든희소 벡터가있는 데이터 프레임을 사용하여 교차 유효성을 조정할 수 있습니까?
df_train.show(10,False)
+------+---------------------------+
|target|features |
+------+---------------------------+
|1.0 |(5,[0,1],[164.0,520.0]) |
|1.0 |[519.0,2723.0,0.0,3.0,4.0] |
|1.0 |(5,[0,1],[2868.0,928.0]) |
|0.0 |(5,[0,1],[57.0,2715.0]) |
|1.0 |[1241.0,2104.0,0.0,0.0,2.0]|
|1.0 |[3365.0,217.0,0.0,0.0,2.0] |
|1.0 |[60.0,1528.0,4.0,8.0,7.0] |
|1.0 |[396.0,3810.0,0.0,0.0,2.0] |
|1.0 |(5,[0,1],[905.0,2476.0]) |
|1.0 |(5,[0,1],[905.0,1246.0]) |
+------+---------------------------+
주먹, 나는 버틸 방법에 내 추정을 평가하려면, 여기 내 코드입니다 :
from pyspark.ml.classification import MultilayerPerceptronClassifier
from pyspark.ml.evaluation import MulticlassClassificationEvaluator
layers = [4, 5, 4, 3]
trainer = MultilayerPerceptronClassifier(maxIter=100, layers=layers, blockSize=128, seed=1234)
param = trainer.setParams(featuresCol = "features",labelCol="target")
train,test = df_train.randomSplit([0.8, 0.2])
model = trainer.fit(train)
result = model.transform(test)
evaluator = MulticlassClassificationEvaluator(
labelCol="target", predictionCol="prediction", metricName="accuracy")
print("Test set accuracy = " + str(evaluator.evaluate(result)))
그러나 오류 밝혀 : 사용자 정의 함수를 실행하지 못했습니다를 ($ anonfun $ 1 : (vector) => double). 내 기능에 희소 벡터가 있기 때문에이게 맞습니까? 내가 무엇을 할 수 있습니까?
그리고 교차 검증 부분에 대한
, 나는 다음과 같은 코드 :X=df_train.select("features").collect()
y=df_train.select("target").collect()
from sklearn.model_selection import cross_val_score,KFold
k_fold = KFold(n_splits=10, random_state=None, shuffle=False)
print(cross_val_score(trainer, X, y, cv=k_fold, n_jobs=1,scoring="accuracy"))
를 내가 얻을 : 그것은 'get_params'메소드를 구현하지 않는 scikit 배울 추정 될 것 같지 않습니다 . 하지만 문서를 조회 할 때 get_params 메소드를 찾지 못했습니다. 누군가 나를 도와 줄 수 있습니까? (실제로 별도의 문제이다) 두 번째 부분에 초점을
고맙습니다. part1 및 part2의 문제가 귀하가 언급 한 것과 정확히 일치 함을 보여줍니다. 이제 나는 그들 모두를 풀어 봤다. 고맙다. –
@BobbyHuang 대단히 환영합니다. – desertnaut