首页 > 其他分享 >2024.1.23日报

2024.1.23日报

时间:2024-01-23 12:00:17浏览次数:24  
标签:2024.1 val scala 日报 23 org apache new spark

今天继续完成spark实验,已经是最后一个了 关于这次的数据集,用到的是adult.data和adult.test 两个 两个数据集都要进行一下预处理 首先就是删除最后的空行,然后test文件第一行数据格式有问题,删掉 另外就是test文件每行最后有个.,可以采用把所有的K.替换成为K的方式 处理完之后上传到hdfs进行操作

import org.apache.spark.ml.feature.PCA
import org.apache.spark.sql.Row
import org.apache.spark.ml.linalg.{Vector,Vectors}
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.ml.{Pipeline,PipelineModel}
import org.apache.spark.ml.feature.{IndexToString, StringIndexer, VectorIndexer,HashingTF, Tokenizer}
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.classification.LogisticRegressionModel
import org.apache.spark.ml.classification.{BinaryLogisticRegressionSummary, LogisticRegression}
import org.apache.spark.sql.functions;
scala> import spark.implicits._
import spark.implicits._
scala> case class Adult(features: org.apache.spark.ml.linalg.Vector, label: String) <br>defined class Adult
scala> val df=sc.textFile("adult.data.txt").map(_.split(",")).map(p=>Adult(Vectors.dense(p(0).toDouble,p(2).toDouble,p(4).toDouble,p(10).toDouble,p(11).toDouble,p(12).toDouble),p(14).toString())).toDF()<br>df:org.apache.spark.sql.DataFrame = [features: vector, label: string]
scala> val test = sc.textFile("adult.test.txt").map(_.split(",")).map(p=>Adult(Vectors.dense(p(0).toDouble,p(2).toDouble,p(4).toDouble, p(10).toDouble, p(11).toDouble, p(12).toDouble), p(14).toString())).toDF() <br>test:org.apache.spark.sql.DataFrame = [features: vector, label: string]
scala> val pca = new PCA().setInputCol("features").setOutputCol("pcaFeatures").setK(3).fit(df)
scala> val result = pca.transform(df)
scala> val testdata = pca.transform(test)
scala> result.show(false)
scala> testdata.show(false)
scala> val labelIndexer = new StringIndexer().setInputCol("label").setOutputCol("indexedLabel").fit(result)
scala> labelIndexer.labels.foreach(println)
scala> val featureIndexer = new VectorIndexer().setInputCol("pcaFeatures").setOutputCol("indexedFeatures").fit(result)
scala> println(featureIndexer.numFeatures)
scala> val labelConverter = new IndexToString().setInputCol("prediction").setOutputCol("predictedLabel").setLabels(labelIndexer. labels)
scala> val lr = new LogisticRegression().setLabelCol("indexedLabel").setFeaturesCol("indexedFeatures").setMaxIter( 100)
scala> val lrPipeline = new Pipeline().setStages(Array(labelIndexer, featureIndexer, lr, labelConverter))
scala> val lrPipelineModel = lrPipeline.fit(result)
scala> val lrModel = lrPipelineModel.stages(2).asInstanceOf[LogisticRegressionModel]
scala> println("Coefficients: " + lrModel.coefficientMatrix+"Intercept: "+lrModel.interceptVector+"numClasses: "+lrModel.numClasses+"numFeatures: "+lrModel.numFeatures)
scala> val lrPredictions = lrPipelineModel.transform(testdata)
scala> val evaluator = new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction")
scala> val lrAccuracy = evaluator.evaluate(lrPredictions)
scala> println("Test Error = " + (1.0 - lrAccuracy))
scala> val pca = new PCA().setInputCol("features").setOutputCol("pcaFeatures")
scala> val labelIndexer = new StringIndexer().setInputCol("label").setOutputCol("indexedLabel").fit(df)
scala> val featureIndexer = new VectorIndexer().setInputCol("pcaFeatures").setOutputCol("indexedFeatures")
scala> val labelConverter = new IndexToString().setInputCol("prediction").setOutputCol("predictedLabel").setLabels(labelIndexer.l abels)
scala> val lr = new LogisticRegression().setLabelCol("indexedLabel").setFeaturesCol("indexedFeatures").setMaxIter(1 00)
scala> val lrPipeline = new Pipeline().setStages(Array(pca, labelIndexer, featureIndexer, lr, labelConverter))
scala> val paramGrid = new ParamGridBuilder().addGrid(pca.k, Array(1,2,3,4,5,6)).addGrid(lr.elasticNetParam, Array(0.2,0.8)).addGrid(lr.regParam, Array(0.01, 0.1, 0.5)).build()
scala> val cv = new CrossValidator().setEstimator(lrPipeline).setEvaluator(new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction")).se tEstimatorParamMaps(paramGrid).setNumFolds(3)
scala> val cvModel = cv.fit(df)
scala> val lrPredictions=cvModel.transform(test)
scala> val evaluator = new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction")
scala> val lrAccuracy = evaluator.evaluate(lrPredictions)
scala> println("准确率为"+lrAccuracy)
scala> val bestModel= cvModel.bestModel.asInstanceOf[PipelineModel]
scala> val lrModel = bestModel.stages(3).asInstanceOf[LogisticRegressionModel]
scala> println("Coefficients: " + lrModel.coefficientMatrix + "Intercept: "+lrModel.interceptVector+ "numClasses: "+lrModel.numClasses+"numFeatures: "+lrModel.numFeatures)
scala> val pcaModel = bestModel.stages(0).asInstanceOf[PCAModel]
scala> println("Primary Component: " + pcaModel.pc)

 

标签:2024.1,val,scala,日报,23,org,apache,new,spark
From: https://www.cnblogs.com/Arkiya/p/17982019

相关文章

  • 2023年度总结,互联网寒冬是躺平OR寻找风口
    一、前言又到了年底,这一年过的真的好快,犹如白驹过隙。身体快跃过去了,灵魂还没有。拿起键盘却迟迟无法下手,经过三天终于完成了!这是很颓很丧的一年,很难看到自己的成长,就像登山卡在半山腰,开车堵在高架桥,刷一半短视频显示加载中。想起之前经常传的一句梗:一年经验用三年好消息:我......
  • 【2024.01.23】搭建幻兽帕鲁palworld私人服务器,并配置难度
    使用docker进行部署无疑是最快的项目地址:https://github.com/thijsvanloef/palworld-server-docker代码内容services:palworld:image:thijsvanloef/palworld-server-docker:latestrestart:unless-stoppedcontainer_name:palworld-serverpo......
  • https://github.com/runze1223/VH-NBEATS 时序数据NBEATS
    https://github.com/runze1223/VH-NBEATS http://ise.thss.tsinghua.edu.cn/~mlong/doc/TimesNet-iclr23.pdf  https://www.xjx100.cn/news/6779.html  https://blog.csdn.net/qq_59482564/article/details/134912580 https://blog.csdn.net/qq_59482564/arti......
  • 9.23 比赛
    b-e。T1数据范围,小,但不能暴力枚举路径。把路径切成两半,用meetinthemiddle。注意数据范围刚好爆int。赛后assert发现并无问题T2打表找规律,本质是组合数Lucas。T3kmp建立自动机,就可以直接DP。T4类似这个链接下的E题,注意到起点和终点都是充电桩,以所有带有充电......
  • 2023.6.3(Mon.) 练习赛总结
    T1分层图跑最短路。为了优化空间,用了隐式连边的方法。T2dp,主要的想法是合并排列。T4交换的个数是具有传递性的,所以可以找连通块的信息。又因为具有单调性,可以用二分去找。然后多重集排列即可,公式\(\frac{n!}{\prods_i!}\)。T5首先,对\(a\)和\(b\)都分别排序,求出\(r_i......
  • 2023.6.4(Sun.) 练习赛总结
    题目T1打表加贪心,注意模数和一些边界情况。T4数据结构或者dp,可以从颜色角度分别计算共献,也可以从合并的角度统一计算贡献。T2首先要发现一个重要的性质:差分数组单调不降。由于差分数组可以是正的或者负的,符合要求的序列分布情况应该类似与向上开口的抛物线(∪),其中最小值在中......
  • 2023.6.8(THUR.) 练习赛总结
    链接。T2绝对值最小值,可以把原式化为两个只有一个绝对值的式子,set维护即可。T4dp用记忆化搜索加unordered_map实现的,要经过一些处理保证均摊单次转移时间复杂度是\(O(1)\)的。平时要注意计算时间复杂度要从最大的方面考虑,dp时间复杂度是状态数量乘单次转移时间,考虑一......
  • 2024.1.22
    1.Throwable类方法(1)publicStringgetMessage()返回发生的异常的详细信息(2)publicThrowablegetCause()返回一个Throwable对象代表异常原因(3)publicStringtoString()返回此Throwable的简短描述(4)publicvoidprintStackTrace()将此Throwable及其回溯打印到标准错......
  • 【专题】2023年电商行业报告汇总PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34900原文出处:拓端数据部落公众号随着全球电商市场在疫情后持续发展,中国市场占据了半壁江山,对全球电商格局产生了重大影响。中国的三至五线城市的城镇人口众多,约占总城镇人口的65%,并且随着移动互联网的普及,这些城市构成了纵深市场,其用户规模正在稳......
  • 海亮01/23图论专题
    海亮01/23图论专题个人题单T12CF156D题意给定一个\(n\)个点\(m\)条边的带标号无向图,它有\(k\)个连通块,求添加\(k-1\)条边使得整个图连通的方案数,答案对\(p\)取模。题解没学过\(Prüfer\)序列的自行学习。不太会严谨证明我们发现,如果将\(k\)个连通块缩成一......