Sparkmllib scala逻辑回归
生活随笔
收集整理的這篇文章主要介紹了
Sparkmllib scala逻辑回归
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用于數(shù)據(jù)挖掘,疾病自動診斷,經(jīng)濟預(yù)測等領(lǐng)域。例如,探討引發(fā)疾病的危險因素,并根據(jù)危險因素預(yù)測疾病發(fā)生的概率等。以胃癌病情分析為例,選擇兩組人群,一組是胃癌組,一組是非胃癌組,兩組人群必定具有不同的體征與生活方式等。因此因變量就為是否胃癌,值為“是”或“否”,自變量就可以包括很多了,如年齡、性別、飲食習(xí)慣、幽門螺桿菌感染等。自變量既可以是連續(xù)的,也可以是分類的。然后通過logistic回歸分析,可以得到自變量的權(quán)重,從而可以大致了解到底哪些因素是胃癌的危險因素。同時根據(jù)該權(quán)值可以根據(jù)危險因素預(yù)測一個人患癌癥的可能性。
?
數(shù)據(jù)源準備:
position;square;price;direction;type;name; 0;190;20000;0;4室2廳2衛(wèi);中信城(別墅); 0;190;20000;0;4室2廳2衛(wèi);中信城(別墅); 5;400;15000;0;4室3廳3衛(wèi);融創(chuàng)上城; 0;500;15000;0;5室3廳2衛(wèi);中海萊茵東郡; 5;500;15000;0;5室3廳4衛(wèi);融創(chuàng)上城(別墅); 1;320;15000;1;1室1廳1衛(wèi);長江花園; 0;143;12000;0;3室2廳2衛(wèi);融創(chuàng)上城; 0;200;10000;0;4室3廳2衛(wèi);中海萊茵東郡(別墅); 0;207;9000;0;4室3廳4衛(wèi);中海萊茵東郡; 0;130;8500;0;3室2廳2衛(wèi);偉峰東第; 5;150;7000;0;3室2廳2衛(wèi);融創(chuàng)上城; 2;178;6000;0;4室2廳2衛(wèi);鴻城國際花園; 5;190;6000;0;3室2廳2衛(wèi);亞泰豪苑C棟; 1;150;6000;0;5室1廳2衛(wèi);通安新居A區(qū); 2;165;6000;0;3室2廳2衛(wèi);萬科惠斯勒小鎮(zhèn); 0;64;5500;0;1室1廳1衛(wèi);保利中央公園; 2;105;5500;0;2室2廳1衛(wèi);虹館; 1;160;5300;0;3室2廳1衛(wèi);昊源高格藍灣; 2;170;5100;0;4室2廳2衛(wèi);亞泰鼎盛國際; 0;155;5000;0;3室2廳2衛(wèi);中海水岸馨都; 5;128;5000;0;4室2廳1衛(wèi);長影世紀村; 0;145;4500;0;3室2廳2衛(wèi);富奧臨河灣; 2;92;4200;0;3室2廳1衛(wèi);御翠豪庭尚府一期; 0;75;4100;0;1室1廳1衛(wèi);恒大雅苑; 5;105;4000;0;2室1廳1衛(wèi);南湖名家; 2;93;4000;0;3室2廳1衛(wèi);御翠豪庭尚府一期; 5;121;4000;0;3室1廳1衛(wèi);萬達廣場; 0;104;4000;0;2室1廳1衛(wèi);棠棣; 1;135;4000;0;3室2廳2衛(wèi);萬科藍山; 5;98;4000;0;2室2廳1衛(wèi);華億紅府; 0;128;3800;0;3室2廳1衛(wèi);復(fù)地哥德堡森林; 2;154;3700;0;3室2廳2衛(wèi);長春明珠; 0;100;3700;0;2室2廳1衛(wèi);翡翠花溪; 4;66;3700;0;1室1廳1衛(wèi);長客廠南; 2;106;3600;0;2室2廳1衛(wèi);虹館; 5;132;3500;0;3室2廳1衛(wèi);大禹城邦; 1;135;3500;0;3室2廳1衛(wèi);昊源高格藍灣; 0;130;3500;0;3室2廳1衛(wèi);中海國際社區(qū)(AJ區(qū)); 2;70;3500;0;2室1廳1衛(wèi);中信御園; 0;145;3500;0;3室2廳2衛(wèi);萬盛東城; 5;132;3500;0;3室2廳2衛(wèi);大禹城邦; 5;100;3300;0;2室2廳1衛(wèi);國信南湖公館; 5;75;3200;0;1室1廳1衛(wèi);南湖祥水灣; 0;120;3200;0;3室3廳2衛(wèi);復(fù)地哥德堡森林; 2;95;3200;0;3室2廳1衛(wèi);萬科金域長春; 0;106;3200;0;2室2廳1衛(wèi);富騰天下城; 5;118;3200;0;3室2廳2衛(wèi);融創(chuàng)上城(別墅); 1;130;3200;0;3室2廳1衛(wèi);萬龍名城; 0;137;3200;0;3室2廳2衛(wèi);中海國際社區(qū)(AJ區(qū));?
Demo:
import org.apache.spark.SparkConf import org.apache.spark.ml.classification.LogisticRegression import org.apache.spark.ml.feature.VectorAssembler import org.apache.spark.sql.SparkSession/*** 邏輯回歸*/ object logic {def main(args: Array[String]): Unit = {val conf = new SparkConf().setMaster("local[*]").setAppName("logic")val spark = SparkSession.builder().config(conf).getOrCreate()val file = spark.read.format("csv").option("sep", ";").option("header", "true").load("house.csv")import spark.implicits._val random = new util.Random()// 加載訓(xùn)練數(shù)據(jù)val data = file.select("square", "price").map(rows => (rows.getAs[String](0).toDouble, rows.getString(1).toDouble, random.nextDouble())).toDF("square", "price", "random").sort("random")val assembler = new VectorAssembler().setInputCols(Array("square")).setOutputCol("features")val frame = assembler.transform(data)//把數(shù)據(jù)集拆分2個部分 training (80%) and test (20%).val Array(train, test) = frame.randomSplit(Array(0.8, 0.2))//創(chuàng)建邏輯回歸val lr = new LogisticRegression().setLabelCol("price").setFeaturesCol("features").setRegParam(0.3).setElasticNetParam(0.8).setMaxIter(10)val model = lr.fit(train)model.transform(test).show(50,truncate = true)val iterations = model.summary.totalIterationsprintln(s"iter:${iterations}")spark.stop()} }?
?
總結(jié)
以上是生活随笔為你收集整理的Sparkmllib scala逻辑回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unrecognized Hadoop
- 下一篇: Sparkmllib scala svm