我在DataBricks上尝试了标准的spark HashingTF示例.
import org.apache.spark.ml.feature.{HashingTF, IDF, Tokenizer}
val sentenceData = spark.createDataFrame(Seq(
(0, "Hi I heard about Spark"),
(0, "I wish Java could use case classes"),
(1, "Logistic regression models are neat")
)).toDF("label", "sentence")
val tokenizer = new Tokenizer().setInputCol("sentence").setOutputCol("words")
val wordsData = tokenizer.transform(sentenceData)
val hashingTF = new HashingTF()
.setInputCol("words").setOutputCol("rawFeatures").setNumFeatures(20)
val featurizedData = hashingTF.transform(wordsData)
display(featurizedData)
Run Code Online (Sandbox Code Playgroud)
我对下面的理解结果很不满意. 请参阅图像 当numFeatures为20时
[0,20,[0,5,9,17],[1,1,1,2]]
[0,20,[2,7,9,13,15],[1,1,3,1,1]]
[0,20,[4,6,13,15,18],[1,1,1,1,1]]
Run Code Online (Sandbox Code Playgroud)
如果[0,5,9,17]是哈希值
而[1,1,1,2 ]是频率.
17具有频率2
9有3(它有2)
13,15有1而它们必须有2.
可能我错过了一些东西.找不到详细解释的文档.
我试图理解一句话“在存在相关变量的情况下,岭回归可能是首选。”假设我们有变量 a1、a2、b1、c2,并且 2 个 a"s 是相关的。如果我们使用套索可以消除其中一个。Lasso 和 Ridge 都会收缩。所以听起来套索在这些条件下可能会更好。但引用说里奇更好。这是一个错误的引用还是我遗漏了什么?(可能想得太简单了)
我曾尝试使用Spark的AFTSurvivalRegression进行生存分析.这很简单.为了解标签参数我玩了一些.在网络上,我发现它有两种使用方式.1)作为一些观察.认为标签为患者计数特征=体温标签,检查员,特征2,1,38 1,0,28 2人38度存活1人28度无法存活
2)另一个与药物剂量相关的指标,该标签作为药物标签的剂量,检查员,特征2,1,38 1,0,28 2剂量药物存活38度2剂量药物没有存活28度
也许我对他们都错了.找不到参数的解释.检查R幸存函数,但更混乱.有谁知道标签参数的真正含义?
val training = spark.createDataFrame(Seq(
(1.218, 1.0, Vectors.dense(1.560, -0.605)),
(2.949, 0.0, Vectors.dense(0.346, 2.158)),
(3.627, 0.0, Vectors.dense(1.380, 0.231)),
(0.273, 1.0, Vectors.dense(0.520, 1.151)),
(4.199, 0.0, Vectors.dense(0.795, -0.226))
)).toDF("label", "censor", "features")
val quantileProbabilities = Array(0.3, 0.6)
Run Code Online (Sandbox Code Playgroud)