zoukankan      html  css  js  c++  java
  • 决策树(Decision Tree)SkLearn

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from sklearn.feature_extraction import DictVectorizer
    import csv
    from sklearn import tree
    from sklearn import preprocessing
    from sklearn.externals.six import StringIO
    
    # Read in the csv file and put features into list of dict and list of class label
    allElectronicsData = open(r'AllElectronics.csv', 'rb')
    reader = csv.reader(allElectronicsData)
    headers = reader.next()
    
    print(headers)
    
    featureList = []
    labelList = []
    
    for row in reader:
        labelList.append(row[len(row)-1]) # 取得每一行最后一个值 标签
        rowDict = {} #取得每一行的值 包含有字典的list
        for i in range(1, len(row)-1):
            rowDict[headers[i]] = row[i]
        featureList.append(rowDict)
    
    print(featureList)
    
    # Vetorize features
    vec = DictVectorizer()#将字典转换成00100的形式(1000)
    dummyX = vec.fit_transform(featureList) .toarray()
    
    print("dummyX: " + str(dummyX))
    print(vec.get_feature_names())
    
    print("labelList: " + str(labelList))
    
    # vectorize class labels
    lb = preprocessing.LabelBinarizer()#将标签转换成0,1
    dummyY = lb.fit_transform(labelList)
    print("dummyY: " + str(dummyY))
    
    # Using decision tree for classification
    # clf = tree.DecisionTreeClassifier()
    clf = tree.DecisionTreeClassifier(criterion='entropy')#信息熵
    clf = clf.fit(dummyX, dummyY)
    print("clf: " + str(clf))
    
    
    # Visualize model
    with open("allElectronicInformationGainOri.dot", 'w') as f:
        f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(), out_file=f)
    
    oneRowX = dummyX[0, :]
    print("oneRowX: " + str(oneRowX))
    
    newRowX = oneRowX
    newRowX[0] = 1
    newRowX[2] = 0
    print("newRowX: " + str(newRowX))
    
    predictedY = clf.predict(newRowX)
    print("predictedY: " + str(predictedY))
    

      

  • 相关阅读:
    package.json 字段全解析 share
    Git 使用方法
    浅谈移动前端的最佳实践(转)
    node启动服务后,窗口不能关闭。pm2了解一下
    WebSocket--客户端
    布局:多列等高布局方法
    uni-app调用支付宝、微信支付
    scss 入门基础
    mac生成iOS证书(配图)
    通过扫码打开IOS的App Store下载APP(Android版暂时没找到解决方法)
  • 原文地址:https://www.cnblogs.com/wlc297984368/p/7462684.html
Copyright © 2011-2022 走看看