zoukankan      html  css  js  c++  java
  • python利用sklearn对企业数据分析并预测

    题目大概就是利用企业发票的信息分析出企业是否为异常企业,其中企业一共有3万多家,
    发票数大约有400多万条信息,发票明细信息有1000多万条信息

    因为之前已经采用一些分析的方法找到了321家异常企业,所以对发票表进行分析,
    利用sklearn建立决策树模型,并利用训练集对其进行训练,最后对测试数据进行预测。


    一、环境准备
        python
        sklearn
        panda
    二、数据准备
        首先将原数据表拆分为两个表分别作为训练数据集和测试数据集
        在训练数据集中增加一个字段label表示该条信息是否为问题数据,0为正常,1为有问题

        

    三、读入文件(利用panda读入文件)

        将训练数据集以及测试数据集读入到程序中

    #读取CSV 文件
    
    train_data=pd.read_csv(r'.	rain1.csv')
    
    test_data=pd.read_csv(r'.	est1.csv')
    

      

    四、特征选择

      对训练数据集进行特征属性的选择

    # 3特征选择
    
    features=['xf_id', 'gf_id', 'je', 'se', 'jshj', 'zfbz']#表内数据特征
    
    train_features=train_data[features]
    
    train_labels=train_data['label']
    
    test_features=test_data[features]
    

     五、创建ID3决策树

      利用sklearn创建决策树模型

    #4 创建ID3决策树
    
    clf=DecisionTreeClassifier(criterion='entropy')
    
    test_features=dvec.fit_transform(test_features.to_dict(orient='record'))
    
    clf.fit(train_features,train_labels)
    

     六、优化模型

      利用k折交叉验证,统计决策树准确率,提高正确率

    #k折交叉验证,统计决策树准确率,提高正确率
    
    from sklearn.model_selection import cross_val_score
    
    import numpy as np
    
    print(u'cross_val_score 准确率为 %.4lf' % np.mean(cross_val_score(clf, train_features, train_labels, cv=10)))
    

     七、测试数据预测并存储结果

    #预测测试数据
    test_predict1=clf.predict(test_features)
    print(test_predict1)
    #存储预测结果
    temp = pd.DataFrame(test_predict1)
    temp.to_csv('D:\test\3\3.csv')
    

      最后对预测结果进行分析,发现测试数据中有25条数据,加上训练数据集中的278条数据,一共是303条记录,结果还算是比较不错的啊

    最后的最后,整个的源代码是参考一个泰坦尼克预测生存率的代码,

    这是项目的地址:cystanford/Titanic_Data: Titanic乘客生存预测 (github.com)

  • 相关阅读:
    Android_Studio常用插件
    Android_Studio 及SDK下载
    Ubuntu 16.04 LTS 正式发布:系统将持续更新5年
    Windows通用应用平台
    Jquery局部打印插件
    WEB打印插件Lodop
    WEB打印插件jatoolsPrinter
    hdu1863
    PromiseKit入门
    高速排序
  • 原文地址:https://www.cnblogs.com/cdl-sunshine/p/15435510.html
Copyright © 2011-2022 走看看