- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个大约有 500 列和 2 亿行的 RDD,并且 RDD.columns.indexOf("target", 0)
显示 Int = 77
这告诉我我的目标因变量在第 77 列。但我对如何选择所需的(部分)列作为特征没有足够的知识(比如我想要从 23 到 59、111 到 357、399 到 489 的列) .我想知道我是否可以申请这样的:
val data = rdd.map(col => new LabeledPoint(
col(77).toDouble, Vectors.dense(??.map(x => x.toDouble).toArray))
.toDF()
把 RDD 转换成 DataFrame或者使用 DataFrame 比 RDD 更容易实现目标。
最佳答案
我假设您的数据或多或少是这样的:
import scala.util.Random.{setSeed, nextDouble}
setSeed(1)
case class Record(
foo: Double, target: Double, x1: Double, x2: Double, x3: Double)
val rows = sc.parallelize(
(1 to 10).map(_ => Record(
nextDouble, nextDouble, nextDouble, nextDouble, nextDouble
))
)
val df = sqlContext.createDataFrame(rows)
df.registerTempTable("df")
sqlContext.sql("""
SELECT ROUND(foo, 2) foo,
ROUND(target, 2) target,
ROUND(x1, 2) x1,
ROUND(x2, 2) x2,
ROUND(x2, 2) x3
FROM df""").show
+----+------+----+----+----+
| foo|target| x1| x2| x3|
+----+------+----+----+----+
|0.73| 0.41|0.21|0.33|0.33|
|0.01| 0.96|0.94|0.95|0.95|
| 0.4| 0.35|0.29|0.51|0.51|
|0.77| 0.66|0.16|0.38|0.38|
|0.69| 0.81|0.01|0.52|0.52|
|0.14| 0.48|0.54|0.58|0.58|
|0.62| 0.18|0.01|0.16|0.16|
|0.54| 0.97|0.25|0.39|0.39|
|0.43| 0.23|0.89|0.04|0.04|
|0.66| 0.12|0.65|0.98|0.98|
+----+------+----+----+----+
foo
和
x2
并提取
LabeledPoint(target, Array(x1, x3))
:
// Map feature names to indices
val featInd = List("x1", "x3").map(df.columns.indexOf(_))
// Or if you want to exclude columns
val ignored = List("foo", "target", "x2")
val featInd = df.columns.diff(ignored).map(df.columns.indexOf(_))
// Get index of target
val targetInd = df.columns.indexOf("target")
df.rdd.map(r => LabeledPoint(
r.getDouble(targetInd), // Get target value
// Map feature indices to values
Vectors.dense(featInd.map(r.getDouble(_)).toArray)
))
关于scala - RDD 到 LabeledPoint 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31638770/
我的 LabeledPoint 中有一些不平衡的数据.我想要做的是选择所有正面和 n负数倍(随机)。例如,如果我有一个 100正面和 30000底片,我想创建新 LabeledPoint与所有 100
如果我有一个大约有 500 列和 2 亿行的 RDD,并且 RDD.columns.indexOf("target", 0)显示 Int = 77这告诉我我的目标因变量在第 77 列。但我对如何选择所
我有两个 LabeledPoints - Prediction1 和 Prediction2。这两个LabeledPoints都具有作为第一个元素的值和作为第二个元素的预测。我想检查 Predicti
我正在尝试使用 Apache Spark MLlib 实现文档分类器,但在表示数据时遇到了一些问题。我的代码如下: import org.apache.spark.sql.{Row, SQLConte
我有两个 LabeledPoints - lable1 和 label2: label1 = (label,[feature1,feature2,feature3]) label2 = (label,
我在使用 PySpark 的 saveAsHadoopFile() 时遇到错误,而在使用 saveAsSequenceFile() 时遇到同样的错误。我需要保存一个 (key,val) 的 RDD,其
我正在一个非常简单的数据集上运行一些测试,该数据集基本上由数字数据组成。可以查到here . 我在使用 pandas、numpy 和 scikit-learn 时效果很好,但在转向 Spark 时,我
我已经使用 Impala 构建了一个包含目标和数百个特征的表。我想使用 Spark MLlib 来训练模型。我知道为了通过 Spark 运行分布式监督模型,数据需要采用多种格式之一。 LabeledP
我是 Apache Spark 的新手,正在尝试将数据从 .csv 文件转换为 LabeledPoint 以使用 Apache Spark 的 MLlib 包。我尝试使用以下代码获取 LabeledP
我有一个这样的数据文件: "id"; "a"; "b"; "c"; "d"; "e"; "f"; "outcome" 1144216938;1988;0;0;1;1965.115431348724;1
我尝试将 PCA 应用于我的数据,然后将 RandomForest 应用于转换后的数据。但是,PCA.transform(data) 给了我一个 DataFrame,但我需要一个 mllib Labe
我有一个 LabeledPoint 我想运行逻辑回归: Data: org.apache.spark.rdd.RDD[org.apache.spark.mllib.regression.Labeled
我在 RDD[LabeledPoint] 中有数据(在下面的代码中表示为 sparse0.sparseData) 我想转换为RDD[(Long,Vector)],这样我就可以在mllib包中运行LDA
我正在尝试使用 Spark MLlib 实现一个简单的 SVM 分类算法。 我有一堆字符串和它们的标签,现在我想对它们执行 TF-IDF,并将结果提供给 SVM 算法。 所以我正在寻找的是从 Stri
我使用 python 中的什么 .map() 函数从 spark 数据帧创建一组 labeledPoints?如果标签/结果不是第一列,但我可以引用其列名“状态”,那么符号是什么? 我使用这个 .ma
我有以下使用 pyspark.ml 包进行线性回归的代码。但是,当模型适合时,我在最后一行收到此错误消息: IllegalArgumentException: u'requirement failed
我了解到,在使用 spark 数据框时,您会希望将任何数据源直接导入为 spark 数据框。在我的例子中,我需要使用 pandas 函数来破坏表格并创建虚拟变量。因此,在读取数据后,我在我的 .map
以下代码行将(即将弃用)mllib.regression.LabeledPoint 从文件加载到 RDD[LabeledPoint]: MLUtils.loadLibSVMFile(spark.spa
我正在准备包含 Id(标签)和关键字(功能)的数据,以将它们传递给 Java 中的 MLlib 算法。我的关键字是用逗号分隔的字符串。我的目标是使用多类分类算法来预测 id。问题是,如何构建 Labe
我正在使用 Apache-Spark 和 Scala 的 MLlib。我需要转换一组 Vector import org.apache.spark.mllib.linalg.{Vector, Vect
我是一名优秀的程序员,十分优秀!