如果您已经具有数字功能并且不需要其他转换,则可以使用
VectorAssembler合并包含自变量的列:
from pyspark.ml.feature import VectorAssemblerassembler = VectorAssembler( inputCols=["your", "independent", "variables"], outputCol="features")transformed = assembler.transform(parsedData)
接下来,您可以简单地映射:
from pyspark.mllib.regression import LabeledPointfrom pyspark.sql.functions import col(transformed.select(col("outcome_column").alias("label"), col("features")) .rdd .map(lambda row: LabeledPoint(row.label, row.features)))
从Spark
2.0开始
ml,
mllibAPI不再兼容,而后者正朝着弃用和移除的方向发展。如果仍然需要此功能,则必须转换
ml.Vectors为
mllib.Vectors。
from pyspark.mllib import linalg as mllib_linalgfrom pyspark.ml import linalg as ml_linalgdef as_old(v): if isinstance(v, ml_linalg.SparseVector): return mllib_linalg.SparseVector(v.size, v.indices, v.values) if isinstance(v, ml_linalg.DenseVector): return mllib_linalg.DenseVector(v.values) raise ValueError("Unsupported type {0}".format(type(v)))
和地图:
lambda row: LabeledPoint(row.label, as_old(row.features)))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)