Skip to main content
Version: 1.0.8

分类 - 成人人口普查

在这个例子中,我们尝试从成人人口普查数据集中预测收入。

首先,我们导入包(使用help(synapse)查看内容),

现在让我们读取数据并将其分割为训练集和测试集:

data = spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/AdultCensusIncome.parquet"
)
data = data.select(["education", "marital-status", "hours-per-week", "income"])
train, test = data.randomSplit([0.75, 0.25], seed=123)
train.limit(10).toPandas()

TrainClassifier 可用于初始化和拟合模型,它封装了 SparkML 分类器。 你可以使用 help(synapse.ml.train.TrainClassifier) 来查看不同的参数。

请注意,它隐式地将数据转换为算法期望的格式:对字符串进行分词和哈希处理,对分类变量进行独热编码,将特征组装成向量等。参数numFeatures控制哈希特征的数量。

from synapse.ml.train import TrainClassifier
from pyspark.ml.classification import LogisticRegression

model = TrainClassifier(
model=LogisticRegression(), labelCol="income", numFeatures=256
).fit(train)

最后,我们保存模型以便它可以在评分程序中使用。

from synapse.ml.core.platform import *

if running_on_synapse() or running_on_synapse_internal():
model.write().overwrite().save("Files/models/AdultCensus.mml")
elif running_on_databricks():
model.write().overwrite().save("dbfs:/AdultCensus.mml")
elif running_on_binder():
model.write().overwrite().save("/tmp/AdultCensus.mml")
else:
print(f"{current_platform()} platform not supported")