亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python實現決策樹分類(2)

2020-02-15 22:51:52
字體:
來源:轉載
供稿:網友

在上一篇文章中,我們已經構建了決策樹,接下來可以使用它用于實際的數據分類。在執行數據分類時,需要決策時以及標簽向量。程序比較測試數據和決策樹上的數值,遞歸執行直到進入葉子節點。

這篇文章主要使用決策樹分類器就行分類,數據集采用UCI數據庫中的紅酒,白酒數據,主要特征包括12個,主要有非揮發性酸,揮發性酸度, 檸檬酸, 殘糖含量,氯化物, 游離二氧化硫, 總二氧化硫,密度, pH,硫酸鹽,酒精, 質量等特征。

下面是具體代碼的實現:

#coding :utf-8'''2017.6.26 author :Erin      function: "decesion tree" ID3     '''import numpy as npimport pandas as pdfrom math import logimport operator import randomdef load_data():    red = [line.strip().split(';') for line in open('e:/a/winequality-red.csv')]  white = [line.strip().split(';') for line in open('e:/a/winequality-white.csv')]  data=red+white  random.shuffle(data) #打亂data  x_train=data[:800]  x_test=data[800:]    features=['fixed','volatile','citric','residual','chlorides','free','total','density','pH','sulphates','alcohol','quality']  return x_train,x_test,features def cal_entropy(dataSet):     numEntries = len(dataSet)  labelCounts = {}  for featVec in dataSet:    label = featVec[-1]    if label not in labelCounts.keys():      labelCounts[label] = 0    labelCounts[label] += 1  entropy = 0.0  for key in labelCounts.keys():    p_i = float(labelCounts[key]/numEntries)    entropy -= p_i * log(p_i,2)#log(x,10)表示以10 為底的對數  return entropy def split_data(data,feature_index,value):  '''  劃分數據集  feature_index:用于劃分特征的列數,例如“年齡”  value:劃分后的屬性值:例如“青少年”  '''  data_split=[]#劃分后的數據集  for feature in data:    if feature[feature_index]==value:      reFeature=feature[:feature_index]      reFeature.extend(feature[feature_index+1:])      data_split.append(reFeature)  return data_splitdef choose_best_to_split(data):    '''  根據每個特征的信息增益,選擇最大的劃分數據集的索引特征  '''    count_feature=len(data[0])-1#特征個數4  #print(count_feature)#4  entropy=cal_entropy(data)#原數據總的信息熵  #print(entropy)#0.9402859586706309    max_info_gain=0.0#信息增益最大  split_fea_index = -1#信息增益最大,對應的索引號   for i in range(count_feature):        feature_list=[fe_index[i] for fe_index in data]#獲取該列所有特征值    #######################################     # print(feature_list)    unqval=set(feature_list)#去除重復    Pro_entropy=0.0#特征的熵    for value in unqval:#遍歷改特征下的所有屬性      sub_data=split_data(data,i,value)      pro=len(sub_data)/float(len(data))      Pro_entropy+=pro*cal_entropy(sub_data)      #print(Pro_entropy)          info_gain=entropy-Pro_entropy    if(info_gain>max_info_gain):      max_info_gain=info_gain      split_fea_index=i  return split_fea_index        ##################################################def most_occur_label(labels):  #sorted_label_count[0][0] 次數最多的類標簽  label_count={}  for label in labels:    if label not in label_count.keys():      label_count[label]=0    else:      label_count[label]+=1    sorted_label_count = sorted(label_count.items(),key = operator.itemgetter(1),reverse = True)  return sorted_label_count[0][0]def build_decesion_tree(dataSet,featnames):  '''  字典的鍵存放節點信息,分支及葉子節點存放值  '''  featname = featnames[:]       ################  classlist = [featvec[-1] for featvec in dataSet] #此節點的分類情況  if classlist.count(classlist[0]) == len(classlist): #全部屬于一類    return classlist[0]  if len(dataSet[0]) == 1:     #分完了,沒有屬性了    return Vote(classlist)    #少數服從多數  # 選擇一個最優特征進行劃分  bestFeat = choose_best_to_split(dataSet)  bestFeatname = featname[bestFeat]  del(featname[bestFeat])   #防止下標不準  DecisionTree = {bestFeatname:{}}  # 創建分支,先找出所有屬性值,即分支數  allvalue = [vec[bestFeat] for vec in dataSet]  specvalue = sorted(list(set(allvalue))) #使有一定順序  for v in specvalue:    copyfeatname = featname[:]    DecisionTree[bestFeatname][v] = build_decesion_tree(split_data(dataSet,bestFeat,v),copyfeatname)  return DecisionTree def classify(Tree, featnames, X):  classLabel=''  root = list(Tree.keys())[0]  firstDict = Tree[root]  featindex = featnames.index(root) #根節點的屬性下標  #classLabel='0'  for key in firstDict.keys():  #根屬性的取值,取哪個就走往哪顆子樹    if X[featindex] == key:      if type(firstDict[key]) == type({}):        classLabel = classify(firstDict[key],featnames,X)      else:        classLabel = firstDict[key]  return classLabel   if __name__ == '__main__':  x_train,x_test,features=load_data()  split_fea_index=choose_best_to_split(x_train)  newtree=build_decesion_tree(x_train,features)  #print(newtree)  #classLabel=classify(newtree, features, ['7.4','0.66','0','1.8','0.075','13','40','0.9978','3.51','0.56','9.4','5'] )  #print(classLabel)    count=0  for test in x_test:    label=classify(newtree, features,test)        if(label==test[-1]):      count=count+1  acucy=float(count/len(x_test))  print(acucy)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人a级网| 色黄久久久久久| 亚洲欧美视频在线| 日本国产高清不卡| 欧美激情一二区| 国产精品久久久久免费a∨大胸| 久久久国产精品x99av| 国产成人精品av在线| 亚洲欧美在线第一页| 欧美日韩一区二区三区在线免费观看| 国产精品一区久久久| 欧洲午夜精品久久久| 日韩女优在线播放| 亚洲福利小视频| 欧美大片在线看免费观看| 亚洲 日韩 国产第一| 亚洲成在人线av| 亚洲2020天天堂在线观看| 一色桃子一区二区| 亚洲福利影片在线| 日韩中文字幕免费| 国产一区二区在线免费视频| 亚洲欧美中文在线视频| 国产视频精品一区二区三区| 国产一区欧美二区三区| 欧美国产日产韩国视频| 国产精品美女视频网站| 久久久久久久久久久成人| 精品视频久久久久久| 精品女同一区二区三区在线播放| 亚洲va久久久噜噜噜| 欧美性色xo影院| 国内精品久久久久久影视8| 亚洲人成在线免费观看| 日日骚av一区| 亚洲第一福利在线观看| 欧美日韩中文字幕| 久久成人在线视频| 欧美色videos| 国产成人中文字幕| 欧美成人剧情片在线观看| 亚洲视频网站在线观看| 亚洲欧美综合另类中字| 亚洲精品丝袜日韩| 日韩第一页在线| 亚洲一区二区久久| www.日韩视频| 亚洲专区国产精品| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲毛片在线观看| 久久视频精品在线| 国产一区二区免费| 国内外成人免费激情在线视频网站| 日本精品久久中文字幕佐佐木| 在线中文字幕日韩| 欧美日韩中国免费专区在线看| 欧美精品videosex性欧美| 欧美午夜片欧美片在线观看| 精品久久久久久久久久久久| 日韩一级裸体免费视频| 久久精品电影网站| 狠狠躁夜夜躁久久躁别揉| www.日韩视频| 日韩激情av在线免费观看| 色悠悠国产精品| 国产视频精品一区二区三区| 国产精品亚洲视频在线观看| 国产亚洲欧美日韩一区二区| 国产一区二区三区免费视频| 久久男人资源视频| 成人中心免费视频| 成人免费视频在线观看超级碰| 成人黄色生活片| 欧美性生活大片免费观看网址| 色琪琪综合男人的天堂aⅴ视频| 这里只有精品在线播放| 亚洲精品久久久久久久久| 国产性色av一区二区| 欧美怡红院视频一区二区三区| 国产亚洲免费的视频看| 69av成年福利视频| 91在线国产电影| 亚洲白拍色综合图区| 亚洲最大福利网站| 欧美视频免费在线| 91九色精品视频| 欧美成人国产va精品日本一级| 伊人伊成久久人综合网站| 欧美激情在线观看视频| 欧美精品在线免费观看| 国产精品视频一区二区高潮| 日韩欧美亚洲综合| 韩日欧美一区二区| 久久久91精品国产一区不卡| 国产一区二区香蕉| 国产美女久久精品| 日韩av在线一区二区| 欧美性开放视频| 日韩精品视频在线| 97精品伊人久久久大香线蕉| 国产精品美腿一区在线看| 亚洲精品成人网| 国产91九色视频| 久久精品99久久香蕉国产色戒| 亚洲免费av片| 538国产精品一区二区免费视频| 欧美性xxxx极品高清hd直播| 亚洲男女自偷自拍图片另类| 欧美另类暴力丝袜| 中文日韩电影网站| 久久亚洲一区二区三区四区五区高| 69久久夜色精品国产69乱青草| 国产一级揄自揄精品视频| 日韩在线观看你懂的| 欧美专区第一页| 中文字幕日韩欧美在线| 成人免费淫片视频软件| 亚洲国产毛片完整版| 国产精品久久久久久久久久99| 国产免费一区二区三区香蕉精| 欧美色图在线视频| 亚洲第一福利视频| 成人羞羞国产免费| 欧洲永久精品大片ww免费漫画| 国产精品自拍视频| 欧美国产日韩一区二区在线观看| 亚洲sss综合天堂久久| 欧美日韩亚洲一区二区三区| 亚洲一区二区在线播放| 欧美人在线观看| 91色琪琪电影亚洲精品久久| 久久精品一区中文字幕| 久久久精品日本| 欧美激情a∨在线视频播放| 91久久夜色精品国产网站| 日日骚av一区| 97av在线播放| 精品成人久久av| 日韩av第一页| 亚洲一区二区三区香蕉| 日韩在线视频免费观看高清中文| 日韩精品免费在线播放| 久久亚洲综合国产精品99麻豆精品福利| 国产欧美亚洲视频| 精品国产自在精品国产浪潮| 韩剧1988在线观看免费完整版| 国产精品久久久久77777| 在线观看中文字幕亚洲| 亚洲精品欧美日韩| 亚洲视频在线观看| 亚洲成人av中文字幕| 久久久久999| 亚洲偷熟乱区亚洲香蕉av| 国产精品久久久久久一区二区| 精品高清美女精品国产区| 黄色精品在线看| 91在线视频一区| zzjj国产精品一区二区| 久久亚洲精品一区| 亚洲成人久久久久| 亚洲第一色在线| 国产精品入口日韩视频大尺度| 成人免费福利视频| 欧美在线观看日本一区|