1. 程式人生 > >Spark機器學習之--邏輯迴歸

Spark機器學習之--邏輯迴歸

Spark 利用邏輯迴歸做申請評分卡,上乾貨

    val spark=SparkSession.builder().appName("LRTest").master("local[*]").getOrCreate()
    val sc=spark.sparkContext
    //隱式轉換
    val colArrayName= Array("affairs", "gender", "age", "yearsmarried", "children", "religiousness", "education", "occupation", "rating")

    import spark.implicits._
    val dataDF = sc.textFile("file:///D:\\lrTest.txt")
      .map(x=>{x.split(" ,")
        .map(x=>{x.trim})
        .mkString(",")})
      .map(x=>{
       val values=x.split(",")
        values.length match {
          case 9=>lrdata(values(0).toDouble,values(1),values(2).toDouble,values(3).toDouble,values(4),values(5).toDouble,values(6).toDouble,values(7).toDouble,values(8).toDouble)
          case _=>null
        }
      }).toDF(colArrayName:_*)

    val colFeaturesName= Array("gender", "age", "yearsmarried", "children", "religiousness", "education", "occupation", "rating")
   //建立臨時表
    dataDF.createOrReplaceTempView("df")
    val sql=
      s"""
        |select case when affairs>1 then 1 else 0 end as affairs,
        |case when gender='female' then 0 else 1 end as gender,
        |age,yearsmarried,
        |case when children='yes' then 1 else 0 end as children,
        |religiousness,education,occupation,rating
        |from df
      """.stripMargin

    val sqlDF = spark.sql(sql)

    val vecDF=new VectorAssembler().setInputCols(colFeaturesName).setOutputCol("features").transform(sqlDF)
    val Array(trainngData,testData)=vecDF.randomSplit(Array(0.9,0.1))

    trainngData.show()
    //建立model
    val model=new LogisticRegression().setLabelCol("affairs").setFeaturesCol("features").fit(trainngData)
    //截距,迴歸系統,此係數為每個特徵的權重
    println(s"Coefficients: ${model.coefficients.toArray.mkString(",")} Intercept: ${model.intercept}")

    //測試環境
    model.transform(testData).show

    model.write.overwrite.save("D:\\tmp\\LRTest")
    spark.stop()

  }

  case class lrdata(affairs:Double, gender:String,age: Double, yearsmarried:Double, children:String, religiousness:Double, education:Double,occupation: Double, rating:Double)

如下為為Spark的解析部分的日誌,Spark2.2後有自適應執行計劃,並實現了謂詞下推的功能還是非常強大的

如下為執行的模型的迴歸系統和截距:


相關推薦

Spark機器學習--邏輯迴歸

Spark 利用邏輯迴歸做申請評分卡,上乾貨 val spark=SparkSession.builder().appName("LRTest").master("local[*]").getOrCreate() val sc=spark.sparkContex

吳恩達機器學習邏輯迴歸理論部分

一.特徵函式 對應分類問題,我們先針對二分類問題進行討論,對應計算機而言,分類即將資料按其特徵值不同分為不同的集合,僅對應二分類問題,我們只需考慮分為:正類和負類,為此我們引入特徵函式。 y=1 — 代表二分類中的正類 y=0 — 代表二分類中的反類 這是特殊函式

機器學習邏輯迴歸(logistic regression)

概述 邏輯斯蒂迴歸實質是對數機率迴歸(廣義的線性迴歸),是用來解決分類問題的。 其中sigmoid用來解決二分類問題,softmax解決多分類問題,sigmoid是softmax的特殊情況。 數學建模直接針對分類可能性建模。 引數學習可用極大似然估計

機器學習邏輯迴歸(二)

二項邏輯迴歸模型是如下的條件概率分佈:   其中x∈是輸入,y∈{0,1}是輸出。 為了方便,將權值向量和輸入向量進行擴充,此時w = ,x = ,迴歸模型表示如下:       引數w未知,採用統計學中的極大似然估計來由樣本估計引數w。對於0-1分佈x

sklearn機器學習邏輯迴歸分類器

物以類聚,人以群分。 是非黑白,金木水火。 乾坤陰陽,寒暑燥溼。     import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model #訓練資

機器學習邏輯迴歸(logistics regression)程式碼(牛頓法實現)

      先貼一張圖解釋牛頓法原理:       然後以一道問題為例:       這個問題是《機器學習》周志華版本上的題目,給了西瓜的密度和含糖率資料,判斷西瓜的好壞。資料在程式碼裡。       下面貼一下程式碼: <span style="font-size

機器學習 Logistic 迴歸(邏輯迴歸)

目錄 Logistic迴歸 部落格園地址:https://www.cnblogs.com/chenyoude/ git 地址:https://github.com/nickcyd/machine_learning 微信:a1171958281 Logistic 迴

Spark機器學習分類與迴歸

本頁面介紹了分類和迴歸的演算法。 它還包括討論特定類別的演算法的部分,如線性方法,樹和集合體。 目錄 分類 Classification -----------邏輯迴歸 Logistic regression -------------------二項式邏輯迴

spark Ml 機器學習 線性迴歸

本文版本選自spark 2.1.0寫這篇文章之前已閱讀過官網api,演算法本身自認為自己手動寫,應該可以搞定(進一步優化不提);但是官網卻看的我迷迷糊糊的,引數選擇和結果獲取,描述不夠清晰,寫這篇文字的目的就是為了理清所有官網沒有解答的謎團;演算法本身比較簡單,網上文章也很多

機器學習邏輯回歸

反向 margin -1 mil 局部最優 一個數 簡單 line 滿足 給定一張圖片,如何讓計算機幫助我們識別它是不是一張貓的圖片,這個問題可以看成一個簡單的分類問題。如下圖所示,平面上有兩種不同顏色(黑色,紅色)的點,我們要做到就是要找到類似與那條直線那樣的界限。當某個

JavaScript機器學習線性迴歸

譯者按: AI時代,不會機器學習的JavaScript開發者不是好的前端工程師。 原文: Machine Learning with JavaScript : Part 1 譯者: Fundebug 為了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。

【ML2】機器學習線性迴歸

【知識儲備】 線性迴歸: 1: 函式模型(Model): 假設有訓練資料   那麼為了方便我們寫成矩陣的形式   2: 損失函式(cost):  現在我們需要根據給定的X求解W的值,這裡採用最小二乘法。   

機器學習logistic迴歸演算法與程式碼實現

                                       Logistic迴歸演算法與程式

機器學習線性迴歸SVR

機器學習之線性迴歸SVR # -*- coding: utf-8 -*- """ Created on Sun Dec 2 09:53:01 2018 @author: muli """ import matplotlib.pyplot as plt import

機器學習線性迴歸(Linear Regression)

線性學習中最基礎的迴歸之一,本文從線性迴歸的數學假設,公式推導,模型演算法以及實際程式碼執行幾方面對這一回歸進行全面的剖析~ 一:線性迴歸的數學假設 1.假設輸入的X和Y是線性關係,預測的y與X通過線性方程建立機器學習模型 2.輸入的Y和X之間滿足方程Y= θ

機器學習線性迴歸原理及sklearn實現

  1、線性迴歸問題        以房價預測為例,佔地面積為變數x1,房屋年齡為變數x2,房屋價格為預測變數y。        為什麼叫線性迴歸問題,因為目標函式是一個線性迴歸函式。什麼是目標函式?        (1)、目標函式:目標函式是我們需要的最終結果,及

機器學習線性迴歸演算法(Linear Regression)(含python原始碼)

機器學習之線性迴歸演算法(Linear Regression) 線性迴歸(Linear Regression)演算法屬於有監督的迴歸(Regression)學習演算法。迴歸(Regression)演算法通過建立變數之間的迴歸模型,通過學習(訓練)過程得到變數與

機器學習線性迴歸極大似然估計法

leboop文章,禁止轉載! 請閱讀《機器學習之矩陣微積分及其性質》和《機器學習之線性迴歸公式推導》。首先我們還是使用如下的資料:   feature_1 feature_2   feature_n

機器學習線性迴歸公式推導

leboop文章,禁止轉載! 本文所有符號約定參見機器學習之矩陣微積分及其性質。 假設我們獲得了個數據,每一個數據由個特徵和一個真實值構成,如下:   feature_1 feature_2   fe

機器學習演算法——邏輯迴歸詳解

簡介 邏輯迴歸(Logistic Regression)既是迴歸演算法,也是分類演算法。通常情況下用於解決分類問題。 之前線性迴歸中,迴歸函式 y = Wx + b 中,y實際上就是我們要預測的值,如房價的價格預測。 而線上性迴歸中,我們實際要求的函式為 p =