日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python实现决策树数据直接赋值导入_Python3.0 实现决策树算法的流程

發布時間:2025/3/11 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现决策树数据直接赋值导入_Python3.0 实现决策树算法的流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

決策樹的一般流程

檢測數據集中的每個子項是否屬于同一個分類

if so return 類標簽

Else

尋找劃分數據集的最好特征

劃分數據集

創建分支 節點

from math import log

import operator

#生成樣本數據集

def createDataSet():

dataSet = [[1,1,'yes'],

[1,1,'yes'],

[1,0,'no'],

[0,1,'no'],

[0,1,'no']]

labels = ['no surfacing','flipper']

return dataSet,labels

# 計算香農熵 香農 大神必須要膜拜啊,信息界的根目錄人物啊

# no surfacing 指的是 不浮出水面能否生存 1 標識 是 0 指的是否

# flipper 指的是是否有腳

# yes no指的是否是魚類

def calcShannonEnt(dataSet):

numEntries = len(dataSet) # 用上面的createDataSet dataSet 這個值就是5

#定義標簽字典

labelCounts = {}

# 為所有可能的分類創建字典

for featVec in dataSet:

currentLabel = featVec[-1] #這個-1指的是去取最后一個維度 對應數據dataSet 這里取的是yes和no

if currentLabel not in labelCounts.keys():

# 如果當前分類標簽不在 標簽字典中

labelCounts[currentLabel] = 0

# 其他情況 分類標簽分類加1

labelCounts[currentLabel] += 1

#定義香農熵 以2為底數求對數

shannonEnt = 0.0

for key in labelCounts:

#計算 yes 或者No 出現的概率

pro = float(labelCounts[key])/numEntries

# 計算香農熵

shannonEnt -= pro*log(pro,2)

return shannonEnt

#dataSet是待劃分的數據集, 劃分數據集的特征 axis 特征的返回值value

#最后是創建了一個新的列表對象

def splitDataSet(dataSet, axis , value):

# 創建新list對象

retDataSet = []

for featVec in dataSet:

if featVec[axis] == value:

reducedFeatVec = featVec[:axis]

reducedFeatVec.extend(featVec[axis+1:])

retDataSet.append(reducedFeatVec)

return retDataSet

# 選擇最好的特征值進行數據集劃分

def chooseBestFeatureToSplit(dataSet):

# len(dataSet[0])是計算這一行有多少列,即有多少個特征值

numFeatures = len(dataSet[0])-1 # -1 是最后一個特征值就不要記錄在內了,算baseEntrop的時候已經算了最后一個特征值yes no

baseEntropy = calcShannonEnt(dataSet)

bestInfoGain = 0.0

bestFeature = -1

for i in range(numFeatures):

#創建唯一的分類標簽列表 也就是說提取dataSet每一行第i個值 就提取dat

featList = [example[i] for example in dataSet]

# 取出有幾種特征值

uniqueVals = set(featList)

newEntropy = 0.0

for value in uniqueVals:

#創建特征值的子數據集

subDataSet = splitDataSet(dataSet,i, value)

#計算該特征值數據對總數在數據對總數出現的概率

pro = len(subDataSet)/float(len(dataSet))

#計算分割出來的子集香農熵

newEntropy += pro*calcShannonEnt(subDataSet)

#計算信息增益 得到最好的特征值 這個理論是這樣的g(D,A) = H(D)-H(D/A)

infoGain = baseEntropy-newEntropy

#取出最大的信息增益,此時特征值最大

if(infoGain >bestInfoGain):

bestInfoGain = infoGain

bestFeature = i

return bestFeature

'''

#構建決策樹是根據特征值的消耗來計算的,如果后面的特征值已經全部用完了

但是還沒有分出結果,這個時候就需要使用多數表決方式計算節點分類

最后返回最大的分類

'''

def majorityCnt(classList):

# 分類的字典

classCount = {}

for vote in range(classList):

#如果不在 分類字典中

if vote not in classCount.keys(): classCount[vote] = 0

classCount[vote] += 1

# 根據出現的次數大到小排序

sortedClassCount = sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)

return sortedClassCount[0][0]

#創建決策樹

def createTree(dataSet, labels):

# 獲取數據樣本每組最后一組的特征值 這里是yes,no

classList = [example[-1] for example in dataSet]

# 如果說這個classList 全部都是 yes 或者全部是no 那肯定子返回yes 或者no

if(classList.count(classList[0]) == len(classList)):

return classList[0]

#如果遍歷完所有的特征返回出現次數最多的

#是用消耗特征值的方式進行構造決策樹的,每次會消掉一個特征值

if len(dataSet[0]) == 1:

return majorityCnt(classList)

#選擇最好的特征值

bestFeat = chooseBestFeatureToSplit(dataSet)

bestFeatLabel = labels[bestFeat]

myTree = {bestFeatLabel:{}}

# 刪除labels中的一特征值

del(labels[bestFeat])

#找到特征值那一列

featValues = [example[bestFeat] for example in dataSet]

uniqueVals = set(featValues)

for value in uniqueVals:

# labels列表的賦值

subLabels = labels[:]

myTree[bestFeatLabel][value]=createTree(splitDataSet(dataSet,bestFeat,value),subLabels)

return myTree

dataSet,lables = createDataSet()

shannonEnt= calcShannonEnt(dataSet)

my = createTree(dataSet,lables)

print(my)

總結

以上所述是小編給大家介紹的Python3.0 實現決策樹算法的流程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網站的支持!

如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

本文標題: Python3.0 實現決策樹算法的流程

本文地址: http://www.cppcns.com/jiaoben/python/267738.html

總結

以上是生活随笔為你收集整理的python实现决策树数据直接赋值导入_Python3.0 实现决策树算法的流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲熟妇一区二区 | 国产主播在线播放 | 日韩国产第一页 | 99久久婷婷国产综合精品草原 | 中文字幕在线导航 | 亚洲性xx| 99久久久国产精品免费蜜臀 | 男女在楼梯上高潮做啪啪 | 欧美成人图区 | 高清一区二区三区四区五区 | 国产精品久久久久久妇女 | 福利视频网站 | 亚洲视频区 | 欧美色图11p| 四季av一区二区夜夜嗨 | 毛茸茸毛片| av福利在线看| 北条麻妃在线一区二区 | 久久青青热 | 久久麻豆精品 | 国产性70yerg老太 | 91精彩视频在线观看 | 国产乱真实合集 | 久热在线视频 | 久久艹国产 | 欧美日韩高清丝袜 | 国产良妇出轨视频在线观看 | 久久久久中文字幕 | 翔田千里在线播放 | 亚洲一本在线 | 午夜专区 | 九九自拍偷拍 | 欧洲一二三区 | 亚洲精品久久久久久一区二区 | 人妻少妇偷人精品久久久任期 | 久久人妻少妇嫩草av蜜桃 | 黑丝啪啪| 色婷婷精品 | 亚洲av成人精品日韩在线播放 | 天天舔天天射天天干 | 日本免费精品视频 | 一女双乳被两男吸视频 | 中文字幕第9页 | 欧美日韩一区二区三区在线观看 | 午夜精品久久久久 | 在线亚洲观看 | 成人免费一区二区三区在线观看 | 伊人久久精品视频 | 亚洲人成电影在线 | 日韩欧美一区二区视频 | 91手机在线播放 | 黄色网页在线免费观看 | 免费观看在线高清 | 免费看黄视频的网站 | 久久久久久久久久久久久久久久久 | 内裤摩擦1v1h| 国产极品美女高潮无套在线观看 | 手机av免费在线观看 | 久久精品视频6 | 综合久久久久久久久久久 | www.黄色一片 | 一级黄色免费大片 | 亚洲AV无码成人精品区东京热 | 丁香六月色 | 69精品视频| 久久久国产片 | 少妇人妻偷人精品无码视频新浪 | 中文字幕亚洲精品 | fc2ppv色の美マンに中出し | 欧美日韩精品一区二区三区 | 色呦呦视频在线观看 | 特大黑人巨人吊xxxx | 中文字幕第4页 | av看片在线| 国产真实偷伦视频 | 日本一区二区三区视频在线 | 免费福利视频在线观看 | 日韩每日更新 | 麻豆精品久久久 | 国产精品高潮AV无码 | 爱爱精品视频 | xxx综合网| 色花av | 乌克兰毛片 | 亚洲成人免费看 | 自拍偷拍亚洲精品 | 亚洲精品国产一区二 | 国产极品视频在线观看 | 午夜福利三级理论电影 | 九九九九热 | 在线岛国| 日韩色一区 | 久久蜜臀| 一级做a免费视频 | 国内毛片毛片毛片毛片 | 精品午夜福利在线观看 | 在线免费观看成年人视频 | 欧洲自拍一区 | 黄色在线免费观看网站 |