使用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. 作為網際網路廣告的老大哥,谷歌花