基于python文本挖掘实战_python实战——文本挖掘+xgboost预测+数据处理+准确度计算整合版...

''''============================输出技术问题及其可能性================'''

classattri:def __init__(self):

self.key=0

self.weight=0.0

'''====================小类======================='''attribute_proba=clf.predict_proba(Stestdata)#print(type(attribute_proba))

'''======================================================='''

#=============================================================================#myexcel = xlwt.Workbook()#sheet = myexcel.add_sheet('sheet')#si=-1#sj=-1##cys=1#for i in attribute_proba:#si=si+1##print("对于记录 %d:" % cys)##cys=cys+1#for j in i:#sj=sj+1#sheet.write(si,sj,str(j))##print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))#sj=-1#myexcel.save("proba.xls")#=============================================================================

'''==========================================================================='''

'''获得小类发生概率和序号的结合,第一个数为序号'''Bnew2=[]

count=0for i inattribute_proba:

ls=[]

ls.append(Snew[count])

count=count+1

for j ini:

ls.append(j)

Bnew2.append(ls)'''对Bnew去重'''bol=np.zeros(len(Slast)+1)for lis inBnew2:if bol[lis[0]]==0:

Bnew.append(lis)

bol[lis[0]]=1

#print(len(Bnew))#去重后为1162

for i in range(len(Slast)+1):if i==0:continue

if bol[i]==0:

ls=[]

ls.append(i)for j inrange(len(attribute_proba[0])):

ls.append(0)

Bnew.append(ls)#print("Bnew",len(Bnew)) #为1329

Bnew.sort(key=operator.itemgetter(0))#print(Bnew)

Bpro=[]for line inBnew:

ls=np.zeros(12)for i inrange(len(line)):if i==0:continue

elif BvsS[i]==0:

ls[0]+=line[i]elif BvsS[i]==1 or BvsS[i]==2 or BvsS[i]==3:

ls[1]+=line[i]elif BvsS[i]==4 or BvsS[i]==5 or BvsS[i]==6:

ls[2]+=line[i]elif BvsS[i]==8 or BvsS[i]==9 or BvsS[i]==10 or BvsS[i]==11 or BvsS[i]==12:

ls[3]+=line[i]elif BvsS[i]==13 or BvsS[i]==14 or BvsS[i]==15 or BvsS[i]==16:

ls[4]+=line[i]elif BvsS[i]==17 or BvsS[i]==18 or BvsS[i]==19 or BvsS[i]==20 or BvsS[i]==21 or BvsS[i]==22 or BvsS[i]==23 or BvsS[i]==24:

ls[5]+=line[i]elif BvsS[i]==25 or BvsS[i]==26 or BvsS[i]==27 or BvsS[i]==28 or BvsS[i]==29:

ls[6]+=line[i]elif BvsS[i]==30 or BvsS[i]==31 or BvsS[i]==32:

ls[7]+=line[i]elif BvsS[i]==33:

ls[8]+=line[i]elif BvsS[i]==34 or BvsS[i]==35 or BvsS[i]==36 or BvsS[i]==37:

ls[9]+=line[i]elif BvsS[i]==38 or BvsS[i]==39:

ls[10]+=line[i]else:

ls[11]+=line[i]

Bpro.append(ls)

Bnew=[]

Bnew4=[]for line inBpro:

ls=[]for i inrange(len(line)):

a=obj()

a.key=i

a.weight=line[i]

ls.append(a)

ls.sort(key=lambda obj: obj.weight, reverse=True)

Bnew.append(ls)

lis=[]

lis.append(ls[0].key)

lis.append(ls[1].key)

lis.append(ls[2].key)

lis.append(ls[3].key)

Bnew4.append(lis)#print(Bnew4)

'''计算大类准确率,转成01编码'''Bnew_one=[]for lis inBnew4:

bol=np.zeros(12)

bol=bol.tolist()

bol[lis[0]],bol[lis[1]],bol[lis[2]],bol[lis[3]]=1,1,1,1Bnew_one.append(bol)

Bnew_one=np.array(Bnew_one)#print(Snew_one.shape)

#print(Slast_one.shape)#都为1329*51

count=0

si=-1

for line inBlast:

si+=1f=1

for j inline:if j ==0:continue

if Bnew_one[si,j]!=1:

f=0break

if f==1:

count=count+1

print("大类准确率为:",count*1.0/s)'''准确率计算完毕'''

#=============================================================================# #myexcel = xlwt.Workbook()#sheet = myexcel.add_sheet('sheet')#si=-1#sj=-1##cys=1#for i in Bnew4:#si=si+1##print("对于记录 %d:" % cys)##cys=cys+1#for j in i:#sj=sj+1#sheet.write(si,sj,str(j))##print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))#sj=-1#myexcel.save("Bpro_new.xls")# #myexcel = xlwt.Workbook()#sheet = myexcel.add_sheet('sheet')#si=-1#sj=-1##cys=1#for i in Blast:#si=si+1##print("对于记录 %d:" % cys)##cys=cys+1#for j in i:#sj=sj+1#sheet.write(si,sj,str(j))##print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))#sj=-1#myexcel.save("Bpro_last.xls")# #=============================================================================#=============================================================================#class obj:#def __init__(self):#self.key=0#self.weight=0.0#=============================================================================

'''================================================================================'''label=[]for i inattribute_proba:

lis=[]

k=0while k<4:

k=k+1p=1mm=0

sj=-1

for j ini:

sj=sj+1

if j>mm:

mm=j

p=sj

i[p]=0#难道是从1开始?

#a=attri()

#a.key=p

#a.weight=mm

#lis.append(a)

lis.append(p)

label.append(lis)#接下来将label和snew结合,再排序去重就可以和slast比较了

#print("为什么都超限",len(Snew))

#print("label",len(label))

count=0for lis inlabel:

lis.append(Snew[count])

count=count+1

print("结合完成,准备去重!")#此时label和Snew的长度都为1439

bol=np.zeros(len(label)+1)

Snew=[]for lis inlabel:if bol[lis[4]]==0:

Snew.append(lis)

bol[lis[4]]=1

#print(len(Snew))#去重后为1162

for i in range(len(Slast)+1):if i==0:continue

if bol[i]==0:

ls=[]

ls.append(0)

ls.append(0)

ls.append(0)

ls.append(0)

ls.append(i)

Snew.append(ls)#print("Snew",len(Snew)) #为1329

print("去重完毕,准备排序!")

Snew.sort(key=operator.itemgetter(4))print("排序完毕,准备比较!")

s=len(Snew)#print(s)

Snew_one=[]for lis inSnew:

bol=np.zeros(51)

bol=bol.tolist()

bol[lis[0]],bol[lis[1]],bol[lis[2]],bol[lis[3]]=1,1,1,1Snew_one.append(bol)

Snew_one=np.array(Snew_one)#print(Snew_one.shape)

#print(Slast_one.shape)#都为1329*51

count=0

si=-1

for line inSlast:

si+=1f=1

for j inline:if j ==0:continue

if Snew_one[si,j]!=1:

f=0break

if f==1:

count=count+1

print(si)print(count)print(s)print("小类准确率为:",count*1.0/s)

myexcel=xlwt.Workbook()

sheet= myexcel.add_sheet('sheet')

si=-1sj=-1

#cys=1

#print(Snew)

for i inSnew:

si=si+1

#print("对于记录 %d:" % cys)

#cys=cys+1

for j ini:

sj=sj+1sheet.write(si,sj,str(j))#print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))

sj=-1myexcel.save("Snew.xls")

myexcel=xlwt.Workbook()

sheet= myexcel.add_sheet('sheet')

si=-1sj=-1

#cys=1

for i inSlast:

si=si+1

#print("对于记录 %d:" % cys)

#cys=cys+1

for j ini:

sj=sj+1sheet.write(si,sj,str(j))#print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))

sj=-1myexcel.save("Slast1.xls")#=============================================================================#print('挑几个输出')#import xlwt#myexcel = xlwt.Workbook()#sheet = myexcel.add_sheet('sheet')#si=-2#sj=-1##cys=1#for i in label:#si=si+2##print("对于记录 %d:" % cys)##cys=cys+1#for j in i:#sj=sj+1#sheet.write(si,sj,str(j.key))#sheet.write(si+1,sj,str(j.weight))##print ("发生技术问题 %d 的可能性是:%.2f %%" % (j.key,j.weight*100))#sj=-1#myexcel.save("proba_small.xls")# #=============================================================================

#-*- coding: utf-8 -*-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值