- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Spark 集群,我想通过执行以下代码来实现线性回归:
data = sqlContext.read.format("com.databricks.spark.csv") \
.option("header", "true") \
.option("inferSchema", "true") \
.load("/FileStore/tables/w4s3yhez1497323663423/basma.csv/")
data.cache() # Cache data for faster reuse
data.count()
from pyspark.mllib.regression import LabeledPoint
# convenience for specifying schema
data = data.select("creat0", "gfr0m").rdd.map(lambda r: LabeledPoint(r[1], [r[0]])) \
.toDF()
display(data)
from pyspark.ml.feature import VectorAssembler
vecAssembler = VectorAssembler(inputCols=["creat0", "gfr0m"], outputCol="features")
(trainingData, testData) = data.randomSplit([0.7, 0.3], seed=100)
trainingData.cache()
testData.cache()
print "Training Data : ", trainingData.count()
print "Test Data : ", testData.count()
data.collect()
from pyspark.ml.regression import LinearRegression
lr = LinearRegression()
# Fit 2 models, using different regularization parameters
modelA = lr.fit(data, {lr.regParam: 0.0})
modelB = lr.fit(data, {lr.regParam: 100.0})
# Make predictions
predictionsA = modelA.transform(data)
display(predictionsA)
from pyspark.ml.evaluation import RegressionEvaluator
evaluator = RegressionEvaluator(metricName="rmse")
RMSE = evaluator.evaluate(predictionsA)
print("ModelA: Root Mean Squared Error = " + str(RMSE))
# ModelA: Root Mean Squared Error = 128.602026843
predictionsB = modelB.transform(data)
RMSE = evaluator.evaluate(predictionsB)
print("ModelB: Root Mean Squared Error = " + str(RMSE))
# ModelB: Root Mean Squared Error = 129.496300193
# Import numpy, pandas, and ggplot
import numpy as np
from pandas import *
from ggplot import *
But its give me this error:
IllegalArgumentException: u'requirement failed: Column features must be of type org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 but was actually org.apache.spark.mllib.linalg.VectorUDT@f71b0bce.
在谷歌搜索这个错误后,我找到了一个答案:
使用 from pyspark.ml.linalg import Vectors, VectorUDT
代替
from pyspark.mllib.linalg import Vectors, VectorUDT
或
from pyspark.ml.linalg import VectorUDT
from pyspark.sql.functions import udf
和一个函数:
as_ml = udf(lambda v: v.asML() if v is not None else None, VectorUDT())
使用示例数据:
from pyspark.mllib.linalg import Vectors as MLLibVectors
df = sc.parallelize([
(MLLibVectors.sparse(4, [0, 2], [1, -1]),),
(MLLibVectors.dense([1, 2, 3, 4]),)
]).toDF(["features"])
result = df.withColumn("features", as_ml("features"))
但我仍然有同样的错误:
这里是一些数据:
原因,“weight0”,“dbp0”,“gfr0m”1,"90","10","22.72"5、“54”、“10”、“16.08”6、66、9、25.473、“110”、“11”、“32.95”5、"62"、"11"、"20.3"5、“65”、“8”、“28.94”1、“65”、“8”、“15.88”5,"96","8","38.09"5、“110”、“8”、“41.64”4、“68”、“8”、“25.85”5、“68”、“7”、“37.77”1、"82"、"9.5"、"16.25"5、“76”、“10”、“37.55”5,"56","","37.06"1,"93","8","18.26"5、"80"、"7.5"、"48.49"1、“73”、“8”、“38.37”4、“76”、“8”、“31.09”1,"68","8","39.62"1,"82","8","40.08"1、"76"、"9.5"、"28.2"5、"81"、"10"、"36.66"2,"80","","47.1"5,"91","10","16.59"2、“58”、“8”、“49.22”1、“76”、“7”、“38.98”"61","8","21.8"5、“50”、“6”、“26.97”1,"83","7","27.81"1、"86"、"8"、"48.62""77","6","46.78"5、“64”、“6”、“34.17”5、"58"、"6"、"38.95"1、“73”、“6”、“7.63”5、"86"、"8"、"32.46"1、“50”、“6”、“35.98”5、"90"、"7"、"32.26"5、"42"、"7"、"17.3"1,"88","7","25.61"5,"110","",""1、"84"、"6"、"31.4"5、“68”、“8”、“53.25”1,"96","8","52.65"6、“74”、“8”、“40.77”1、“70”、“9.5”、“22.35”6、“54”、“8”、“20.16”1,"52","13","32.61""84","8","52.98"5,"90","9","28.67"
最佳答案
给你,你只需要为 pyspark.ml
中的 VectorUDT
添加别名:
from pyspark.mllib.linalg import Vectors as MLLibVectors
from pyspark.ml.linalg import VectorUDT as VectorUDTML
from pyspark.sql.functions import udf
as_ml = udf(lambda v: v.asML() if v is not None else None, VectorUDTML())
df = sc.parallelize([
(MLLibVectors.sparse(4, [0, 2], [1, -1]),),
(MLLibVectors.dense([1, 2, 3, 4]),)
]).toDF(["features"])
result = df.withColumn("features", as_ml("features"))
result.show()
# +--------------------+
# | features|
# +--------------------+
# |(4,[0,2],[1.0,-1.0])|
# | [1.0,2.0,3.0,4.0]|
# +--------------------+
当然,生成的 DataFrame result
还没有准备好传递给 LinearRegression
,因为它没有标签列,但我相信你知道如何处理那个。
关于python - 将 ML VectorUDT 特征从 .mllib 转换为 .ml 类型以进行线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535679/
如何将运算符传递给 ML 中的函数?例如,考虑这个伪代码: function (int a, int b, operator op) return a op b 这里,运算符可以是 op +
我尝试在 Google Cloud ML 上运行来自 github 的 word-RNN 模型。提交作业后,我在日志文件中收到错误。 这是我提交的训练内容 gcloud ml-engine jobs
在 a.ml 中定义了一个记录类型 t 并且也是透明地定义的 在 a.mli 中,即在 d 接口(interface)中,以便类型定义可用 到所有其他文件。 a.ml 还有一个函数 func,它返回一
关闭 ML.NET 模型生成器后,是否可以为创建的模型重新打开它? 我可以删除创建的模型并重新开始,但这并不理想。 最佳答案 不,不是真的。 AutoML/Model Builder 可以生成代码并将
我有一个关于训练可以预测名称是否为女性的 ML.NET 的问题。该模型可以使用这样的管道进行训练: var mlContext = new MLContext(); IDataView trainin
我在 ASP.NET Core 应用程序中使用 ML.NET,并在 Startup 中使用以下代码: var builder = services.AddPredictionEnginePool();
我使用 sklearn 创建了一个模型进行分类。当我调用函数 y_pred2 = clf.predict (features2) 时,它会返回一个包含我的预测的所有 id 的列表 y_pred2 =
我已向 cloud ml 提交了训练作业。但是,它找不到 csv 文件。它就在桶里。这是代码。 # Use scikit-learn to grid search the batch size and
我是 Azure Databricks 的新手,尽管我在 Databricks 方面有很好的经验,但仅限于 Data Engg 方面。我对 Databricks Runtime ML 和 ML Flo
为什么我尝试将经过训练的模型部署到 Google Cloud ML,却收到以下错误: Create Version failed.Model validation failed: Model meta
我是 Azure Databricks 的新手,尽管我在 Databricks 方面有很好的经验,但仅限于 Data Engg 方面。我对 Databricks Runtime ML 和 ML Flo
我是 Azure ML 新手。我有一些疑问。有人可以澄清下面列出的我的疑问吗? Azure ML 服务与 Azure ML 实验服务之间有什么区别。 Azure ML 工作台和 Azure ML St
我的 Cloud ML 训练作业已完成,输出如下: "consumedMLUnits": 43.24 我如何使用此信息来确定培训工作的成本?我无法在以下两个选项之间做出决定: 1)根据这个page ,
docs for setting up Google Cloud ML建议安装 Tensorflow 版本 r0.11。我观察到 r0.12 中新提供的 TensorFlow 函数在 Cloud ML
我正在关注一个来自 - https://spark.apache.org/docs/2.3.0/ml-classification-regression.html#multinomial-logist
我想使用 mosmlc 将我的 ML 程序编译成可执行二进制文件。但是,我找不到太多关于如何操作的信息。 我想编译的代码在这里http://people.pwf.cam.ac.uk/bt288/tic
假设我有两个 Azure ML 工作区: Workspace1 - 由一个团队(Team1)使用,该团队仅训练模型并将模型存储在 Workspace1 的模型注册表中 Workspace2 - 由另一
我尝试使用以下命令行在 Azure 上的 Linux(Ubuntu) 数据科学虚拟机上设置我的 Azure 机器学习环境: az ml 环境设置 但是,它显示错误为加载命令模块 ml 时出错。一直在谷
假设我有两个 Azure ML 工作区: Workspace1 - 由一个团队(Team1)使用,该团队仅训练模型并将模型存储在 Workspace1 的模型注册表中 Workspace2 - 由另一
我尝试使用以下命令行在 Azure 上的 Linux(Ubuntu) 数据科学虚拟机上设置我的 Azure 机器学习环境: az ml 环境设置 但是,它显示错误为加载命令模块 ml 时出错。一直在谷
我是一名优秀的程序员,十分优秀!