1. 程式人生 > >使用Spark MLlib的邏輯迴歸(LogisticRegression)進行使用者分類預測識別

使用Spark MLlib的邏輯迴歸(LogisticRegression)進行使用者分類預測識別

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.mllib.classification.{LogisticRegressionWithLBFGS, LogisticRegressionWithSGD}
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
import
org.apache.spark.mllib.optimization._ /** * Created by simon on 2017/5/8. */ object genderClassificationWithLogisticRegression { def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("genderClassification").setMaster("local[2]") val sc = new SparkContext(conf) // 1.讀取資料
val trainData = sc.textFile("file:\\E:\\test.csv") // 2.解析資料,構建資料集 val parsedTrainData = trainData.map { line => val parts= line.split("\\|") val label = toInt(parts(1)) //第二列是標籤 val features = Vectors.dense(parts.slice(6,parts.length-1).map(_.toDouble)) //第7到最後一列是屬性,需要轉換為Doube型別
LabeledPoint(label, features) //構建LabelPoint格式,第一列是標籤列,後面是屬性向量 }.cache() // 3.將資料集隨機分為兩份,一份是訓練集,一份是測試集 val splits = parsedTrainData.randomSplit(Array(0.7, 0.3), seed = 11L) val training = splits(0) val testing = splits(1) // 4.新建邏輯迴歸模型,並設定訓練引數 // val model = new LogisticRegressionWithLBFGS().setNumClasses(2) // model.optimizer.setNumIterations(500).setUpdater(new SimpleUpdater()) //可以選擇LogisticRegressionWithLBFGS,也可以選擇LogisticRegressionWithSGD,LogisticRegressionWithLBFGS是優化方法 val model = new LogisticRegressionWithSGD() //建立模型 model.optimizer.setNumIterations(500).setUpdater(new SimpleUpdater()).setStepSize(0.001).setMiniBatchFraction(0.02) //模型引數 val trained = model.run(training) //使用訓練集訓練模型 // 5.測試樣本進行預測 val prediction = trained.predict(testing.map(_.features)) //使用測試資料屬性進行預測 val predictionAndLabels = prediction.zip(testing.map(_.label)) //獲取預測標籤 // 6.測量預測效果 val metrics = new BinaryClassificationMetrics(predictionAndLabels) // 7.看看AUROC結果 val auROC = metrics.areaUnderROC println("Area under ROC = " + auROC) } // 將標籤轉換為0和1 def toInt(s: String): Int = { if (s == "m") 1 else 0 } }

相關推薦

使用Spark MLlib邏輯迴歸(LogisticRegression)進行使用者分類預測識別

import org.apache.spark.SparkContext import org.apache.spark.SparkConf import org.apache.spark.mllib.classification.{LogisticRegres

建立邏輯迴歸(LogisticRegression)二分類

已知資料集 testSet.txt 中資料格式如下: 設第一列特徵為x1,第二列特徵為x2,第三列標籤為z 每一個特徵都乘上一個迴歸係數w,則有z=w0x0+w1x1+w2x2(x0=1)z=w0x0+w1x1+w2x2(x0=1)用向量表示法,可記

Spark 多項式邏輯回歸__多分類

ring red 不包含 ray str 使用 5.5 ont take package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.

Spark 多項式邏輯回歸__二分類

implicit frame sele 索引 ans gpa def 隱式 sse package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classifica

Spark ML邏輯迴歸

1 import org.apache.log4j.{Level, Logger} 2 import org.apache.spark.ml.classification.LogisticRegression 3 import org.apache.spark.ml.linalg.Vectors

[PyTorch小試牛刀]實戰二·實現邏輯迴歸對鳶尾花進行分類

[PyTorch小試牛刀]實戰二·實現邏輯迴歸對鳶尾花進行分類 程式碼 使用均方根誤差 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch as t fr

LR(Logistic Regression) 邏輯迴歸模型 進行二分類或多分類 及梯度下降學習引數

邏輯迴歸(Logistic Regression, LR)是傳統機器學習中的一種分類模型,由於演算法的簡單和高效,在實際中應用非常廣泛。它的起源非常複雜,可以看參考引用1。具體應用實踐可以看這裡。 問題背景 對於二元分類問題,給定一個輸入特徵向量XX(例

spark-ml 邏輯迴歸使用記錄

    最近做專案需要用一下邏輯迴歸模型,一開始用了spark的基於RDD的mlib,寫了一個版本的指令碼,後來看官方文件發現mlib目前處於維護狀態,主推的還是基於Dataframe的ml,於是重頭開始寫基於ml的模型指令碼,哎,堅強地繼續搬磚    由於中間有個指標是事件

【python資料探勘課程】十六.邏輯迴歸LogisticRegression分析鳶尾花資料

今天是教師節,容我先感嘆下。祝天下所有老師教師節快樂,這是自己的第二個教師節,這一年來,無限感慨,有給一個人的指導,有給十幾個人講畢設,有幾十人的實驗,有上百人的課堂,也有給上千人的Python網路直播

機器學習筆記04:邏輯迴歸(Logistic regression)、分類(Classification)

說明:本文章所有圖片均屬於Stanford機器學課程,轉載請註明出處 面對一些類似迴歸問題,我們可以通過線性迴歸方法來擬合一個函式,以此來預測資料,但它的輸出是連續的。有時候呢,我們需要一種方法給出一個判定結果,例如”同意(agree)”、”不同意

基於spark構建邏輯迴歸

from __future__ import print_function from pyspark.sql import Row from pyspark.sql import SQLContext from pyspark import SparkContext fro

【python資料探勘課程】邏輯迴歸LogisticRegression分析鳶尾花資料

plt.scatter(X[:50,0], X[:50,1], color='red',marker='o', label='setosa') 呼叫scatter()繪製散點圖,第一個引數為第一列資料(長度),第二個引數為第二列資料(寬度),第三、四個引數為設定點的顏色為紅色,款式為圓圈,最後標

程式碼,邏輯迴歸(logistic_regression)實現mnist分類(TensorFlow實現)

#logistic_regression by ffzhang import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' os.environ["CUDA_VISIBLE_DEVICES"]='2' import num

Spark MLlib logistic迴歸案例

目的: 基於spark1.5.1平臺實現logistics regression 演算法。 logistics迴歸介紹:連結,連結2 程式碼: package sparklr2 import org.apache.spark.{SparkContext, SparkCon

【甘道夫】基於scikit-learn實現邏輯迴歸LogisticRegression

>>> print iris {'target_names': array(['setosa', 'versicolor', 'virginica'],        dtype='|S10'), 'data': array([[ 5.1,  3.5,  1.4,  0.2],      

tensorflow 學習專欄(四):使用tensorflow在mnist資料集上使用邏輯迴歸logistic Regression進行分類

在面對分類問題時,我們常用的一個演算法便是邏輯迴歸(logistic Regression)在本次實驗中,我們的實驗物件是mnist手寫資料集,在該資料集中每張影象包含28*28個畫素點如下圖所示:我們使用邏輯迴歸演算法來對mnist資料集的資料進行分類,判斷影象所表示的數字

學習筆記(八):使用邏輯迴歸檢測JAVA溢位攻擊以及識別驗證碼

(1)檢測JAVA溢位攻擊 1.資料蒐集:載入ADFA-LD正常樣本資料,定義遍歷目錄下檔案的函式,從攻擊資料集中篩選和JAVA溢位攻擊相關的資料,原理同(四) 2.特徵化:與(四)一致,使用詞集模型 3.訓練樣本 logreg = linear_model.LogisticRegr

邏輯迴歸模型實踐-貸款逾期預測

任務       預測貸款使用者是否會逾期,status為響應變數,有0和1兩種值。 程式碼: # -*- coding: utf-8 -*- """ Created on Thu Nov 15 13:02:11 2018 @author: keepi """ i

各種機器學習方法(線性迴歸、支援向量機、決策樹、樸素貝葉斯、KNN演算法、邏輯迴歸)實現手寫數字識別並用準確率、召回率、F1進行評估

本文轉自:http://blog.csdn.net/net_wolf_007/article/details/51794254 前面兩章對資料進行了簡單的特徵提取及線性迴歸分析。識別率已經達到了85%, 完成了數字識別的第一步:資料探測。 這一章要做的就各

分享Spark MLlib訓練的廣告點選率預測模型

2015年,全球網際網路廣告營收接近600億美元,比2014年增長了近20%。多家網際網路巨頭都依賴於廣告營收,如谷歌,百度,Facebook,網際網路新貴們也都開始試水廣告業,如Snapchat, Pinterest, Spotify. 作為網際網路廣告的老大哥,谷歌花