美文网首页统计
【挖掘模型】:Python-决策树-对销售高低的影响因素

【挖掘模型】:Python-决策树-对销售高低的影响因素

作者: dataheart | 来源:发表于2017-05-21 11:57 被阅读78次

    数据源:sales_data.xls

    sales_data.xls

    代码结果:

    决策树模型

    源代码

        # 比较简陋,没有决策树剪枝
    import os
    os.getcwd()
    os.chdir('D:\\完成的任务')
    import pandas as pd
    
    #参数初始化
    inputfile = 'F:/python 数据挖掘分析实战/Data/sales_data.xls'
    data = pd.read_excel(inputfile, index_col = u'序号') 
    
    #数据是类别的标签,要将它转换为数据
    # 1   代表 好  是  高
    # -1  代表 坏  否  低
    data[data == u'好'] = 1
    data[data == u'是'] = 1
    data[data == u'高'] = 1
    data[data != 1] = -1 # 牛逼,将数据集中的非选项转化为-1
    x = data.iloc[:,:3].as_matrix().astype(int)
    y = data.iloc[:,3].as_matrix().astype(int)
    
    from sklearn.tree import DecisionTreeClassifier as DTC
    dtc = DTC(criterion='entropy') # 建立决策树模型,基于熵
    dtc.fit(x, y) # 训练模型
    
    # 导入相关函数,可视化决策树
    # 导出的结果是一个dot文件(在系统默认路劲),需要安装Graphviz才能将它住哪华为PDF或png格式
    from sklearn.tree import export_graphviz
    x = pd.DataFrame(x)
    from sklearn.externals.six import StringIO
    with open("tree.dot", 'w') as f:
      f = export_graphviz(dtc, feature_names = x.columns, out_file = f)
                
    # 需要修改格式
    '''
    digpraph Tree {
        edge[fontname = 'SimHei'];
        node[fontname = 'SimHei']; # 添加这两行,指定中文字体(黑体)
        0 [label ="是否周末 <= 0.0000\nentropy = 0.997502546369\nsamples = 34",shape = 'box'];
        1 [label ="是否有促销 <= 0.0000\nentropy = 0.934068055375\nsamples = 20",shape = 'box'];
    }
    '''
    # 将它保存为UTF-8格式,为了进一步将它转化为可视化格式,需要安装Graphviz(跨平台的,基于命令行的绘图工具),然后命令行中加如下编译方式
    # dot -Tpdf tree.dot -o tree.pdf
    # dot -Tpng tree.dot -o tree.pdf
    
    # 开始->所有程序->Grapgviz->gvedit.exe   将DOT中的格式粘贴进去或者修改一下
    

    参考资料:《Python数据分析与挖掘实战》

    相关文章

      网友评论

        本文标题:【挖掘模型】:Python-决策树-对销售高低的影响因素

        本文链接:https://www.haomeiwen.com/subject/flimxxtx.html