pyspark之线性回归

创建SparkSession对象

from pyspark.sql import SparkSession
saprk = SparkSession.builder.appName('log_reg').getOrCreate()

读取数据集

df = saprk.read.csv("./Linear_regression_dataset.csv", inferSchema=True, header = True)

探究性数据分析

df.printSchema()

df.describe().show(3, False)###False 是否全部显示 False 不隐藏

可以使用corr函数检查输入和输出变量之间的相互关系

from pyspark.sql.functions import corr
df.select(corr('var_1','output')).show()

特征工程化

VectorAssembler合并所有输入特征,输出单个特征向量化。

from pyspark.ml.linalg import Vector
from pyspark.ml.feature import VectorAssembler


vec = VectorAssembler(inputCols=['var_1', 'var_2', 'var_3', 'var_4', 'var_5', 'output'], outputCol='features')
features_df = vec.transform(df)


features_df.printSchema()

model_df = features_df.select('features','output')
model_df.show(5, False)

划分数据集

train_df, test_df = model_df.randomSplit([0.7, 0.3])
print((train_df.count(), len(train_df.columns)))

构建和训练线性回归模型

使用r^2来评估线性回归模型在训练数据上的性能。

from pyspark.ml.regression import LinearRegression
lin_reg = LinearRegression(labelCol='output')
lr_model = lin_reg.fit(train_df)
lr_model.coefficients

lr_model.intercept

在测试数据上评估模型

test_p = lr_model.evaluate(test_df)
test_p.r2
test_p.meanSquaredError

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pyspark是一个用于大规模数据处理的Python库,它可以用于分布式数据处理和分析。在pyspark中,可以使用Spark ML库来进行机器学习任务,包括线性回归线性回归是一种通过建立线性模型来预测数值型目标变量的方法。在pyspark中,可以使用Spark ML库的线性回归模块来进行线性回归分析。 首先,需要导入必要的模块和库。使用以下代码可以导入pyspark和相关的模块: from pyspark.sql import SparkSession from pyspark.ml.regression import LinearRegression from pyspark.ml.linalg import Vectors 接下来,需要创建一个SparkSession对象,并通过读取数据来创建一个DataFrame。DataFrame是pyspark中用于处理结构化数据的主要数据结构。 spark = SparkSession.builder.appName('LinearRegressionExample').getOrCreate() data = spark.read.format("libsvm").load("data.txt") 其中,data.txt是包含训练数据的文件,可以使用libsvm格式进行读取。 然后,可以将数据集划分为训练集和测试集。可以使用randomSplit()方法来实现: train_data, test_data = data.randomSplit([0.7, 0.3]) 接下来,需要构建线性回归模型。可以使用LinearRegression类来实现。在构建模型之前,需要设置一些参数,例如特征列和标签列。 lr = LinearRegression(featuresCol="features", labelCol="label") 然后,可以使用训练数据来训练模型: lr_model = lr.fit(train_data) 训练完成后,可以使用测试数据来评估模型的性能,并获得预测结果: lr_predictions = lr_model.transform(test_data) 最后,可以使用模型的评估器来评估模型的性能。常见的评估指标包括均方根误差(RMSE)和决定系数(R-squared)等。 from pyspark.ml.evaluation import RegressionEvaluator evaluator = RegressionEvaluator(predictionCol="prediction", labelCol="label", metricName="rmse") rmse = evaluator.evaluate(lr_predictions) 以上是使用pyspark实现线性回归的基本步骤。根据具体的数据和需求,可能还需要进行特征工程和调参等操作来提高模型的性能和准确率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值