pyspark 呼叫ml,構建kmeans模型

2021-10-05 15:19:10 字數 1904 閱讀 5616

ml包有三個主要的抽象類:轉換器、評估器、管道

轉換器:通過將乙個新列附加到dataframe來轉換資料。包含資料標準化、資料轉換等內容,常用的有indextostring,stringindexer,vectorassembler,normalizer,onehotencoder,pca等。

評估器:評估器可以被視為需要評估的統計模型,對觀測物件做分類或**。主要包括分類、回歸、聚類三種。

管道:用來表示從轉換到評估的端到端的過程。

用於聚類的資料表是使用者用電量表,包括的主要資訊有:使用者型別、使用者用電量、本週用電量均值、上月用電量均值、用電量變動比率。資料如下圖

本次分析中資料處理過程主要是將資料合併為乙個向量。

合併向量處理

#要處理的列

num_col1 =

['cons_sort_code'

,'g_rate'

,'his_energy'

,'week_energy'

,'energy'

]#向量合併

featurescreator = ft.vectorassembler(inputcols=

[col for col in num_col1]

, outputcol=

"features"

)

from pyspark.ml.clustering import kmeans

import pyspark.ml.clustering as clus

#評估器

keamns = clus.kmeans(k=

4,featurescol =

'features'

)

#管道

pipeline = pipeline(stages =

[featurescreator,keamns]

)#模型擬合

model = pipeline.fit(data)

test = model.transform(data)

最後結果test資料是包含有加工的向量「features"列和最終**結果列"prediction"。

完整的**

def

keamns_deal()

: num_col1 =

['cons_sort_code'

,'g_rate'

,'his_energy'

,'week_energy'

]for c in num_col1:

data = data.withcolumn(c,data[c]

.cast(floattype())

)#轉換器

featurescreator = ft.vectorassembler(inputcols=

[col for col in num_col1]

, outputcol=

"features"

)#評估器

keamns = clus.kmeans(k=

4,featurescol =

'features'

)#管道

pipeline = pipeline(stages =

[featurescreator,keamns]

)#擬合模型

model = pipeline.fit(data)

test = model.transform(data)

return test

test = keamns_deal(data)

pyspark實戰指南github位址

PySpark入門十八 ML之評估器

評估器被視為需要評估的統計模型,對資料做 或分類。包含了七種分類。logisticregresssion 邏輯斯蒂回歸,實際作用於二分類場景 decisiontreeclassifier 決策樹,適用於分類場景。maxdepth 限制樹的深度,mininstancepernode 樹節點觀察資料的最...

PySpark入門十六 機器學習庫ML和MLlib

兩個庫都適用於機器學習,且可以滿足大多數場景需求 spark 在3.0版本後將會棄用mllib 所以現在學習的同學們,可以直接學習ml就好了,不用學習mllib了 ml主要操作的是dataframe,而mllib是處理的rdd物件,相比較而言,處理dataframe會比處理rdd更加簡潔和靈活。ml...

ML 教你聚類並構建學習模型處理資料(附資料集)

本文將根據41個描述性分類特徵的維度,運用無監督主成分分析 pca 和層次聚類方法對觀測進行分組。將資料聚類可以更好地用簡單的多元線性模型描述資料或者識別更適合其他模型的異常組。此方法被編寫在python類中,以便將來能實現類似網格搜尋的引數優化。結果與討論 本專案中,我們將機器學習技術應用於ame...