欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

数据挖掘初次接触!学习代码

发布时间:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 数据挖掘初次接触!学习代码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
import pandas as pd import numpy as np from time import timedata=pd.read_csv("dankuan.csv",sep=';',index_col=0) #打开表 data.head() #查看前几行的数据,默认前5行 data.describe() #数据的快速统计汇总 data.g4_term_type.value_counts() data2=data.fillna(value={'star_class':1300,'main_offer_level':0,'mon_flow_last2':0,'mon_flow_last1':0,'thrmon_flow_trend':0}).fillna(6) #缺值处理 data2.g4_term_type.value_counts(dropna=False)#计数 data2.isnull().any()#查看字段是否有空值#pd.get_dummiesfrom sklearn import preprocessingenc = preprocessing.OneHotEncoder() a1 = data2[['g4_term_type','thrmon_flow_trend']] enc.fit(a1)data2_onehot=pd.DataFrame(enc.transform(a1).toarray().astype(np.bool)) # train_onehot.columns = ['edu_class0','edu_class1','edu_class2','edu_class3','curPlan1','curPlan2','curPlan3','curPlan4'] # train2=pd.concat([train,train_onehot.set_index(train.index)],axis=1) # test_onehot=pd.DataFrame(enc.transform(test[['edu_class', 'curPlan']]).toarray().astype(np.bool)) # test_onehot.columns = ['edu_class0','edu_class1','edu_class2','edu_class3','curPlan1','curPlan2','curPlan3','curPlan4'] # test2=pd.concat([test,test_onehot.set_index(test.index)],axis=1)print(enc.n_values_,enc.feature_indices_,data2_onehot.shape)data2_onehot.columns=['data2_onehot1','data2_onehot2','data2_onehot3','data2_onehot4','data2_onehot5','data2_onehot6','data2_onehot7','data2_onehot8']#区总类别数 data3=pd.concat([data2,data2_onehot.set_index(data2.index)],axis=1)data3.head()names=data3.columns names=names.drop(['is_zf_flag'])#去除无用值 data3[names].head() namesX=data3[names] y=data3.is_zf_flagfrom sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)#拆分训练数据与测试数据 from sklearn.ensemble import RandomForestClassifier #算法1:自动调优算法 from sklearn.model_selection import train_test_split,GridSearchCV rf = RandomForestClassifier(n_estimators=200,max_features=0.7,) model = GridSearchCV(rf, param_grid={'max_depth':[1,5,10], 'min_samples_leaf':[2,5,10,20,50,100]}, cv=3) model.fit(X_train,y_train) y_pred = model.predict(X_test)from sklearn.ensemble import RandomForestClassifier#算法2:随机深林算法clf = RandomForestClassifier(n_jobs = 1)#分类型决策树; #n_jobs:用几个处理器 clf.fit(X_train, y_train) y_pred = clf.predict(X_test)#判定结果 y_pred.shapeprint(list(zip(names,np.round(clf.feature_importances_*100,2))))#各feature的重要性 print(names[clf.feature_importances_.argmax()],np.round(clf.feature_importances_*100,2).max())from sklearn.metrics import accuracy_score,recall_score,precision_score,f1_score #分类准确率,提取出的正确信息条数 /样本中的信息条数,正确被检索/实际被检索,正确被检索/应该检索到print(accuracy_score(y_test,y_pred),recall_score(y_test,y_pred)) print(precision_score(y_test,y_pred),f1_score(y_test,y_pred))from sklearn.model_selection import cross_val_score re_yc = cross_val_score(model, X_train, y_train, cv=10) #交叉验证用于防止模型过于复杂而引起的过拟合from sklearn.model_selection import cross_val_score re = cross_val_score(clf, X_train, y_train, cv=15) #交叉验证用于防止模型过于复杂而引起的过拟合re_yc.max()re_yc.min()re_yc.max()-re_yc.min()data_yc = pd.read_csv("dankuan_yc.csv",sep=';',index_col=0) #打开表 data_yc2=data_yc.fillna(value={'star_class':1300,'main_offer_level':0,'mon_flow_last2':0,'mon_flow_last1':0,'thrmon_flow_trend':0}).fillna(6) #缺值处理 a2 = data_yc2[['g4_term_type','thrmon_flow_trend']] enc.fit(a2) data_yc_onehot=pd.DataFrame(enc.transform(a2).toarray().astype(np.bool)) data2_onehot.columns=['data2_onehot1','data2_onehot2','data2_onehot3','data2_onehot4','data2_onehot5','data2_onehot6','data2_onehot7','data2_onehot8']#区总类别数 data3_yc=pd.concat([data_yc2,data_yc_onehot.set_index(data_yc2.index)],axis=1) names_yc=data3_yc.columns xxx=data3_yc[names_yc]ans=model.predict(xxx) pd.DataFrame(ans).set_index(xxx.index).to_csv("dkjg.csv",header=False) ans=clf.predict(xxx) pd.DataFrame(ans).set_index(xxx.index).to_csv("dkjg.csv",header=False)

  

转载于:https://www.cnblogs.com/CQ-LQJ/p/7834476.html

总结

以上是生活随笔为你收集整理的数据挖掘初次接触!学习代码的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。