使用的漠视

全球语言监测机构适合一个广义线性模型,类似于R的全球语言监测机构()。

语法:全球语言监测机构(公式,数据,家庭…)

参数:

  • 公式安装:象征性的描述模型,如:ResponseVariable~Predictor1+Predictor2。支持运营商:~,+,- - - - - -,

  • 数据:任何SparkDataFrame

  • 家庭:字符串,“高斯”线性回归或“二”对逻辑回归

  • λ:数字,正则化参数

  • α:数字,Elastic-net混合参数

输出:MLlib PipelineModel

本教程演示如何执行线性和逻辑回归对钻石的数据集。

钻石数据加载和分成训练集和测试集

需要(SparkR)#读钻石。csv dataset as SparkDataFrame钻石< -read.df(“/ databricks-datasets / Rdatasets /数据- 001 / csv / ggplot2 / diamonds.csv”,=“com.databricks.spark.csv”,=“真正的”,inferSchema=“真正的”)钻石< -withColumnRenamed(钻石,”“,“rowID”)#将数据分为训练集和测试集trainingData< -样本(钻石,,0.7)testData< -除了(钻石,trainingData)#排除rowidtrainingData< -trainingData(,1]testData< -testData(,1]打印((钻石))打印((trainingData))打印((testData))
(trainingData)

火车一个线性回归模型使用全球语言监测机构()

本节展示如何从其特性预测钻石的价格通过训练使用训练数据的线性回归模型。

有混合的分类特性(削减——理想,保险费,非常好的…)和连续特性(深度、克拉)。在引擎盖下,SparkR自动执行一个炎热的编码的特性,这样就不需要手动完成的。

#家庭=“高斯”训练一个线性回归模型lrModel< -全球语言监测机构(价格~,数据=trainingData,家庭=“高斯”)#打印训练模型的一个总结总结(lrModel)

使用预测()在测试数据来看看模型适用于新数据。

语法:预测(模型,newData)

参数:

  • 模型:MLlib模型

  • newData:SparkDataFrame,通常你的测试集

输出:SparkDataFrame

#使用训练生成预测模型预测< -预测(lrModel,newData=testData)#查看预测对mpg列显示(选择(预测,“价格”,“预测”))

评估模型。

错误< -选择(预测,预测美元价格,预测美元预测,别名(预测美元价格- - - - - -预测美元预测,“错误”))显示(错误)#计算RMSE(选择(错误,别名(√6(总和(错误美元错误^2,na.rm=真正的)/nrow(错误)),“RMSE”)))

使用逻辑回归模型进行训练全球语言监测机构()

本节将展示如何创建一个逻辑回归在相同的数据集来预测一颗钻石的切割基于它的一些特性。

逻辑回归MLlib只支持二进制分类。测试算法在本例中,数据子集工作只有2标签。

#数据子集包含行,钻石切割=“溢价”或钻石切割=“很好”trainingDataSub< -子集(trainingData,trainingData美元减少%,%c(“溢价”,“很好”))testDataSub< -子集(testData,testData美元减少%,%c(“溢价”,“很好”))
#家庭=“二项”训练逻辑回归模型logrModel< -全球语言监测机构(减少~价格+颜色+清晰+深度,数据=trainingDataSub,家庭=“二”)#打印训练模型的总结总结(logrModel)
#使用训练生成预测模型predictionsLogR< -预测(logrModel,newData=testDataSub)#查看预测对标签列显示(选择(predictionsLogR,“标签”,“预测”))

评估模型。

errorsLogR< -选择(predictionsLogR,predictionsLogR美元标签,predictionsLogR美元预测,别名(腹肌(predictionsLogR美元标签- - - - - -predictionsLogR美元预测),“错误”))显示(errorsLogR)