99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁案例分享電力竊漏電用戶識別案例
電力竊漏電用戶識別案例
2021-03-08
收藏
一、案例綜述
案例編號:
102003

案例名稱:
電力、熱力、燃氣及水生產(chǎn)和供應(yīng)業(yè)——電力竊漏電用戶識別

作者姓名(或單位、或來源):
朱江

案例所屬行業(yè):
D442 電力供應(yīng)

案例所用軟件:
R

案例包含知識點:
拉格朗日插補,神經(jīng)網(wǎng)絡(luò),CART決策樹,ROC曲線

案例描述:
目標:防竊漏電,找出可能存在竊漏電的可疑用戶做進一步處理
傳統(tǒng)方法:定期巡檢、定期校驗電表、用戶舉報竊電
缺點:對人依賴性強,目標不明確,工作量大

目前常用方法:利用計量異常報警功能,電能量數(shù)據(jù)查詢功能,進行用戶用電情況的在線監(jiān)督。采集的信息主要有:電量異常、負荷異常、終端報警、主站報警、線損異常等。根據(jù)報警事件發(fā)生前后客戶計量點有關(guān)的數(shù)據(jù)情況(電流、電壓、負荷),構(gòu)建基于指標加權(quán)的用電異常分析模型。


缺點:終端誤報漏報過多,以致無法高效高速定位。指標權(quán)重拍腦門,需要專家的知識和經(jīng)驗,主觀性可能會導致不準確。

分析過程:
要剔除不可能存在漏電的大用戶,如銀行、稅務(wù)、學校、工商。用電負荷隨著時間的變化才有價值,而終端報警存在誤報和漏報,而這些數(shù)據(jù)都能夠幫助總結(jié)用戶竊漏電的行為規(guī)律,即通過預處理提煉出描述用戶竊漏電特征的相關(guān)指標,最終得到建模使用的專家樣本數(shù)據(jù)集,然后開始建模等工作。主要步驟如下:

1.從電力計量自動化系統(tǒng)、營銷系統(tǒng)有選擇性地抽取部分大用戶用電負荷、終端報警及違約竊電處罰信息等原始數(shù)據(jù)。
2.剔除白名單用戶,即不可能存在漏電的用戶。描述性和探索性分析正常用戶和竊漏電用戶的用電特征。
3.處理樣本缺失值,通過經(jīng)驗構(gòu)建特征指標,形成專家數(shù)據(jù)集
4.構(gòu)建竊漏電用戶識別模型
5.模型落地,在線監(jiān)測用戶用電負荷及終端報警,調(diào)用模型實現(xiàn)實時診斷。
6.通過對診斷結(jié)果的評估,優(yōu)化或者重構(gòu)模型

數(shù)據(jù)預處理:
剔除白名單用戶,這里把這些用戶歸為非居民類別
剔除節(jié)假日用電數(shù)據(jù),根據(jù)業(yè)務(wù)經(jīng)驗節(jié)假日用電量明顯偏低(大部分用戶為企業(yè)用戶)

如果直接將缺失值剔除,會嚴重影響供出電量的計算結(jié)果,從而導致日線損率誤差很大,故本案例采用拉格朗日插值法對缺失值填補。
拉格朗日插補可以選取缺失值前后5個數(shù)據(jù)或者和鄰近缺失值之間的所有數(shù)據(jù),組成一組,使用如下公式:

其中x為缺失值對應(yīng)的序號,x_i為非缺失值y_i的序號,對全部缺失值依次填補,直到不存在缺失值。

3.數(shù)據(jù)變換
需要通過新的評價指標來表征竊漏電用戶的行為規(guī)律,故根據(jù)業(yè)務(wù)經(jīng)驗和專業(yè)理論引出三個評價指標:電量趨勢下降指標、線損指標、告警類指標
電量趨勢下降指標:取統(tǒng)計當天及前后五天共11天的數(shù)據(jù),通過線性擬合計算斜率,如果當天的斜率小于前一天的,則計數(shù)加1,可以據(jù)此計算敏感時期內(nèi)的總計數(shù)。
線損指標:線損率具體查看相關(guān)電學知識,取當天及前五天線損均值,當天及后五天線損均值比較,如果增長率大于1%,則記為1,否則為0
告警類指標:取自終端報警次數(shù)總和

本案例共包含五個知識點:
1.拉格朗日插值法:使用拉格朗日填補法填補缺失值
2.數(shù)據(jù)清洗及轉(zhuǎn)換:通過作圖在時間維度上查看前后5天內(nèi)的電量均值變化趨勢;計算電量下降趨勢指標;計算線損指標
3.數(shù)據(jù)劃分:劃分訓練樣本和測試樣本,方便比對模型的有效性
4.神經(jīng)網(wǎng)絡(luò)建模:運用較為簡單的BP神經(jīng)網(wǎng)絡(luò)建立分類模型
5.構(gòu)建CART決策樹模型
6.模型評價:利用ROC曲線在測試集上評價模型

案例執(zhí)行形式:
單人上機

二、案例知識點:
知識點1:
知識點名稱:拉格朗日插值法

知識點所屬工作角色:

知識點背景:
處理缺失值的一種插補方式

知識點描述
采用拉格朗日多項式插補公式對缺失值進行插補

知識點關(guān)鍵詞:
拉格朗日多項式 缺失值插補

知識點所用軟件:
Rstudio

操作目的:
能夠自主編程實現(xiàn)拉格朗日插補

知識點素材(包括數(shù)據(jù)):
missing_data.xls

操作步驟:
1.啟動Rstudio
2.使用setwd()函數(shù)設(shè)置工作目錄,將數(shù)據(jù)文件拷貝至工作目錄下
3.加載xlsx包,讀取素材文件,.xls格式
4.根據(jù)拉格朗日插值法創(chuàng)建拉格朗日插值函數(shù)

5.創(chuàng)建自動替換數(shù)據(jù)框缺失值的函數(shù),找到每個缺失值,并且讀取每個缺失值前后五個或者距離上個缺失值之間的數(shù)值,采用之前創(chuàng)建的拉格朗日插值函數(shù)填補。

6.對讀取到的數(shù)據(jù)應(yīng)用上一步的函數(shù)處理,并且保存
 
處理前后對比如下:
   
操作結(jié)果:
數(shù)據(jù)前后對比如上圖
將R代碼文件保存為newdata.csv以備后續(xù)使用。

知識點小結(jié):
拉格朗日插值法目前現(xiàn)成的函數(shù)都是用于擬合多項式,插值填補的話可以自己寫函數(shù)并且取自己覺得合適的前后數(shù)據(jù)處理

知識點2:
知識點名稱:數(shù)據(jù)清洗及轉(zhuǎn)換

知識點所屬工作角色:
數(shù)據(jù)清洗及轉(zhuǎn)換

知識點背景:
通過業(yè)務(wù)邏輯按照條件篩選數(shù)據(jù),關(guān)鍵點在于按照條件篩選,以及理解業(yè)務(wù)邏輯,進而計算需要的指標

知識點描述
使用階躍函數(shù)按條件篩選數(shù)據(jù)
創(chuàng)建函數(shù)

知識點關(guān)鍵詞:
篩選變量 創(chuàng)建函數(shù)

知識點所用軟件:
Rstudio

操作目的:
篩選數(shù)據(jù)
按照業(yè)務(wù)邏輯生成新指標

知識點素材(包括數(shù)據(jù)):
用戶日用電量.xls

操作步驟:
1.讀取數(shù)據(jù):用戶日用電量.xls
2.進行簡單的數(shù)據(jù)清洗,讀取行數(shù)
3.通過循環(huán),用自建函數(shù)篩選觀測,計算日均電量,多日電量斜率,日均線損

4.作日均電量的點線圖,注意圖形參數(shù)的調(diào)整,加入回歸線,以及原始的電量數(shù)據(jù)
5.將圖形輸出到外部設(shè)備上,即輸出mat.png文件

 

得到圖形如上所示
使用上上步計算得到的數(shù)據(jù)計算電量趨勢下降指標、線損指標、并且結(jié)合對應(yīng)的時間以區(qū)分
將得到的指標放在數(shù)據(jù)框內(nèi),并且輸出到文件pro.csv中
 
得到的文件部分內(nèi)容如下


操作結(jié)果:
生成圖形觀察日均電量相對于原始電量的變化趨勢,從而判斷用戶是否為可以的竊漏電用戶
生成新指標,并且輸出新指標的表格

知識點小結(jié):
主要涉及到通過階躍函數(shù)按照業(yè)務(wù)邏輯篩選觀測,按照業(yè)務(wù)邏輯構(gòu)建新指標,輸出新指標的趨勢圖以及統(tǒng)計表格

知識點3:
知識點名稱:數(shù)據(jù)劃分

知識點所屬工作角色:
數(shù)據(jù)劃分

知識點背景:
數(shù)據(jù)劃分是在進行數(shù)據(jù)清洗和描述性分析后,在建模之前必備的一步,由于很多訓練模型很容易出現(xiàn)過擬合的狀況,所以需要通過獨立于訓練數(shù)據(jù)的測試數(shù)據(jù)來觀察模型實際應(yīng)用在新數(shù)據(jù)上的效果。

知識點描述
數(shù)據(jù)劃分

知識點關(guān)鍵詞:
數(shù)據(jù)劃分 

知識點所用軟件:
Rstudio

操作目的:
對清洗后的數(shù)據(jù)進行數(shù)據(jù)劃分

知識點素材(包括數(shù)據(jù)):
model.csv

操作步驟:
1.讀取數(shù)據(jù),創(chuàng)建符合七三比例的隨機數(shù)

2.根據(jù)創(chuàng)建的隨機數(shù)生成訓練集和測試集,并且寫入文件
 
操作結(jié)果:
生成兩個數(shù)據(jù)文件,訓練數(shù)據(jù)和測試數(shù)據(jù)

知識點小結(jié):
本知識點只是對數(shù)據(jù)進行了簡單的分割,分成訓練數(shù)據(jù)和測試數(shù)據(jù),有興趣的同學可以進一步使用交叉驗證進行進一步的模型選擇

知識點4:
知識點名稱:神經(jīng)網(wǎng)絡(luò)建模

知識點所屬工作角色:

知識點背景:
使用神經(jīng)網(wǎng)絡(luò)構(gòu)建分類模型

知識點描述

知識點關(guān)鍵詞:

知識點所用軟件:
Rstudio

操作目的:
熟悉使用BP神經(jīng)網(wǎng)絡(luò)建模的基本過程

知識點素材(包括數(shù)據(jù)):
traindata.csv

操作步驟:
1.讀取數(shù)據(jù),將預測列轉(zhuǎn)換為因子列
 

3.根據(jù)模型預測訓練集,計算混淆矩陣、準確率
 
4.將預測結(jié)果與訓練集橫向合并并且輸出到output.csv文件,將模型輸出到nnetmodel.RData文件

操作結(jié)果:
得到的混淆矩陣如下

得到的準確率是94.17


知識點小結(jié):

神經(jīng)網(wǎng)絡(luò)模型的關(guān)鍵在于參數(shù)的選擇,而參數(shù)涉及到隱層層數(shù),每層節(jié)點數(shù),學習率或者衰減率,最大迭代次數(shù)等等。而R中一些常見的神經(jīng)網(wǎng)絡(luò)的包有自己的計算邏輯也需要進一步了解。

知識點5:
知識點名稱:構(gòu)建CART決策樹模型

知識點所屬工作角色:

知識點背景:
使用CART決策樹構(gòu)建分類模型

知識點描述
CART決策樹

知識點關(guān)鍵詞:
CART決策樹

知識點所用軟件:
Rstudio

操作目的:
熟悉使用cart決策樹建模的基本過程

知識點素材(包括數(shù)據(jù)):
traindata.csv

操作步驟:
1.讀取數(shù)據(jù),將預測列轉(zhuǎn)換為因子列

2.使用cart決策樹建模,總結(jié)模型并且畫出決策樹

 

3.根據(jù)模型預測訓練集,計算混淆矩陣、準確率

4.將預測結(jié)果與訓練集橫向合并并且輸出到output1.csv文件,將模型輸出到treemodel.RData文件

操作結(jié)果:
得到的混淆矩陣如下
 
得到的準確率是92.72

知識點小結(jié):
決策樹只能做比較簡單的分類,復雜的分類在精確度要求高的時候需要用到隨機森林

知識點6:
知識點名稱:模型評價

知識點所屬工作角色:
模型評價

知識點背景:
模型評價:利用ROC曲線在測試集上評價模型

知識點描述
模型評價

知識點關(guān)鍵詞:
ROC曲線

知識點所用軟件:
Rstudio

操作目的:
熟悉使用ROC曲線評價模型

知識點素材(包括數(shù)據(jù)):
testdata.csv nnetmodel.RData treemodel.RData

操作步驟:
1.讀取數(shù)據(jù),讀取兩個模型數(shù)據(jù)

2.在測試數(shù)據(jù)集上繪制神經(jīng)網(wǎng)絡(luò)模型的ROC曲線

 

3.在測試數(shù)據(jù)集上繪制決策樹的ROC曲線

 

操作結(jié)果:
得到的ROC曲線如前所示,可見神經(jīng)網(wǎng)絡(luò)ROC曲線下的面積更大,說明神經(jīng)網(wǎng)絡(luò)分類模型的分類性能較好

知識點小結(jié):
ROC曲線常用來在測試集上檢測用于分類的模型的好壞

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }