python利用sklearn對企業數據分析並預測


題目大概就是利用企業發票的信息分析出企業是否為異常企業,其中企業一共有3萬多家,
發票數大約有400多萬條信息,發票明細信息有1000多萬條信息

因為之前已經采用一些分析的方法找到了321家異常企業,所以對發票表進行分析,
利用sklearn建立決策樹模型,並利用訓練集對其進行訓練,最后對測試數據進行預測。


一、環境准備
    python
    sklearn
    panda
二、數據准備
    首先將原數據表拆分為兩個表分別作為訓練數據集和測試數據集
    在訓練數據集中增加一個字段label表示該條信息是否為問題數據,0為正常,1為有問題

    

 

 

 

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

    將訓練數據集以及測試數據集讀入到程序中

#讀取CSV 文件

train_data=pd.read_csv(r'.\train1.csv')

test_data=pd.read_csv(r'.\test1.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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM