91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pyspark如何實現隨機森林

發布時間:2020-07-31 09:29:13 來源:億速云 閱讀:314 作者:小豬 欄目:開發技術

小編這次要給大家分享的是pyspark如何實現隨機森林,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

隨機森林是由許多決策樹構成,是一種有監督機器學習方法,可以用于分類和回歸,通過合并匯總來自個體決策樹的結果來進行預測,采用多數選票作為分類結果,采用預測結果平均值作為回歸結果。

“森林”的概念很好理解,“隨機”是針對森林中的每一顆決策樹,有兩種含義:第一種隨機是數據采樣隨機,構建決策樹的訓練數據集通過有放回的隨機采樣,并且只會選擇一定百分比的樣本,這樣可以在數據集合存在噪聲點、異常點的情況下,有些決策樹的構造過程中不會選擇到這些噪聲點、異常點從而達到一定的泛化作用在一定程度上抑制過擬合;第二種隨機是特征隨機,訓練集會包含一系列特征,隨機選擇一部分特征進行決策樹的構建。通過這些差異點來訓練的每一顆決策樹都會學習輸入與輸出的關系,隨機森林的強大之處也就在于此。

廢話不多說,直接上代碼:

from pyspark import SparkConf
from pyspark.sql import SparkSession
from pyspark.ml.linalg import Vectors
from pyspark.ml.feature import StringIndexer
from pyspark.ml.classification import RandomForestClassifier
from pyspark.sql import Row
import pandas as pd
from sklearn import metrics
 
if __name__ == "__main__":
  appname = "RandomForestClassifier"
  master ="local[4]" 
  conf = SparkConf().setAppName(appname).setMaster(master) #spark配置        
  spark=SparkSession.builder.config(conf=conf).getOrCreate()#spark實例化
  
#讀取數據
  data=spark.read.csv('良惡性乳腺癌數據.csv',header=True)
  
#構造訓練數據集
  dataSet = data.na.fill('0').rdd.map(list)#用0填充空值  
  trainData, testData= dataSet.randomSplit([0.7, 0.3], seed=7)
  trainingSet = trainData.map(lambda x:Row(label=x[-1], features=Vectors.dense(x[:-1]))).toDF()  
  train_num = trainingSet.count()
  print("訓練樣本數:{}".format(train_num))
 
   
#使用隨機森林進行訓練
  stringIndexer = StringIndexer(inputCol="label", outputCol="indexed")
  si_model = stringIndexer.fit(trainingSet)
  train_tf = si_model.transform(trainingSet)
  train_tf.show(5)  
  rf = RandomForestClassifier(numTrees=100, labelCol="indexed", seed=7)
  rfModel = rf.fit(train_tf)
   
#輸出模型特征重要性、子樹權重
  print("模型特征重要性:{}".format(rfModel.featureImportances))
  print("模型特征數:{}".format(rfModel.numFeatures))
  
#預測測試集
  testSet = testData.map(lambda x:Row(label=x[-1], features=Vectors.dense(x[:-1]))).toDF()
  test_num=testSet.count()
  print("測試樣本數:{}".format(test_num))  
  si_model = stringIndexer.fit(testSet)
  test_tf = si_model.transform(testSet)  
  predictResult = rfModel.transform(test_tf)
  predictResult.show(5)
  spark.stop()
 
#將預測結果轉為python中的dataframe
  columns=predictResult.columns#提取強表字段
  predictResult=predictResult.take(test_num)#
  predictResult=pd.DataFrame(predictResult,columns=columns)#轉為python中的dataframe
 
#性能評估
  y=list(predictResult['indexed'])
  y_pred=list(predictResult['prediction'])
  y_predprob=[x[1] for x in list(predictResult['probability'])]
  precision_score=metrics.precision_score(y, y_pred)#精確率
  recall_score=metrics.recall_score(y, y_pred)#召回率
  accuracy_score=metrics.accuracy_score(y, y_pred)#準確率
  f1_score=metrics.f1_score(y, y_pred)#F1分數
  auc_score=metrics.roc_auc_score(y, y_predprob)#auc分數
  print("精確率:",precision_score )#精確率
  print("召回率:",recall_score )#召回率
  print("準確率:",accuracy_score )#準確率
  print("F1分數:", f1_score)#F1分數
  print("auc分數:",auc_score )#auc分數

運行結果:

pyspark如何實現隨機森林

看完這篇關于pyspark如何實現隨機森林的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库伦旗| 正定县| 桦南县| 阳曲县| 新兴县| 涪陵区| 台东市| 信丰县| 岳阳县| 阿图什市| 玉田县| 曲水县| 安塞县| 眉山市| 鄢陵县| 东乌珠穆沁旗| 内黄县| 静安区| 长顺县| 柘城县| 旺苍县| 金湖县| 土默特左旗| 宁国市| 弥渡县| 拜泉县| 左贡县| 南汇区| 新野县| 革吉县| 子洲县| 读书| 五家渠市| 仙居县| 平陆县| 长岭县| 梅州市| 山东省| 托克托县| 调兵山市| 屏东县|