同步操作将从 zhang_star/NBbook 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# -*- coding:utf-8 -*-import sysimport urllibimport urlparseimport refrom hmmlearn import hmmimport numpy as npfrom sklearn.externals import joblibimport HTMLParserimport nltkimport csvimport matplotlib.pyplot as pltfrom nltk.probability import FreqDistfrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.metrics import classification_reportfrom sklearn import metrics#测试样本数N=100def load_user_cmd_new(filename):cmd_list=[]dist=[]with open(filename) as f:i=0x=[]for line in f:line=line.strip('\n')x.append(line)dist.append(line)i+=1if i == 100:cmd_list.append(x)x=[]i=0fdist = FreqDist(dist).keys()return cmd_list,fdistdef load_user_cmd(filename):cmd_list=[]dist_max=[]dist_min=[]dist=[]with open(filename) as f:i=0x=[]for line in f:line=line.strip('\n')x.append(line)dist.append(line)i+=1if i == 100:cmd_list.append(x)x=[]i=0fdist = FreqDist(dist).keys()dist_max=set(fdist[0:50])dist_min = set(fdist[-50:])return cmd_list,dist_max,dist_mindef get_user_cmd_feature(user_cmd_list,dist_max,dist_min):user_cmd_feature=[]for cmd_block in user_cmd_list:f1=len(set(cmd_block))fdist = FreqDist(cmd_block).keys()f2=fdist[0:10]f3=fdist[-10:]f2 = len(set(f2) & set(dist_max))f3=len(set(f3)&set(dist_min))x=[f1,f2,f3]user_cmd_feature.append(x)return user_cmd_featuredef get_user_cmd_feature_new(user_cmd_list,dist):user_cmd_feature=[]for cmd_list in user_cmd_list:v=[0]*len(dist)for i in range(0,len(dist)):if dist[i] in cmd_list:v[i]+=1user_cmd_feature.append(v)return user_cmd_featuredef get_label(filename,index=0):x=[]with open(filename) as f:for line in f:line=line.strip('\n')x.append( int(line.split()[index]))return xif __name__ == '__main__':user_cmd_list,dist=load_user_cmd_new("../data/MasqueradeDat/User3")print "Dist:(%s)" % distuser_cmd_feature=get_user_cmd_feature_new(user_cmd_list,dist)#print user_cmd_featurelabels=get_label("../data/MasqueradeDat/label.txt",2)y=[0]*50+labelsx_train=user_cmd_feature[0:N]y_train=y[0:N]x_test=user_cmd_feature[N:150]y_test=y[N:150]neigh = KNeighborsClassifier(n_neighbors=3)neigh.fit(x_train, y_train)y_predict=neigh.predict(x_test)score=np.mean(y_test==y_predict)*100print score#print classification_report(y_test, y_predict)#print metrics.confusion_matrix(y_test, y_predict)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。