因学习中发现《Python数据分析与挖掘实战》中的代码,有些不能实现,自己学习的时候走了很多弯路,特此分享可直接实现的代码,希望能让有需要的朋友少走弯路。
#数据抽样 import pandas as pd from random import shuffle inputfile='../9.2/moment.csv' data=pd.read_csv(inputfile,encoding='gbk') data=data.as_matrix() shuffle(data) train=data[:int(len(data)*0.8),:] test=data[int(len(data)*0.8):,:] #构建支持向量机模型 x_train=train[:,2:]*30 #特征放大 y_train=train[:,0].astype(int) #数据类型转化 x_test=test[:,2:]*30 y_test=test[:,0].astype(int) import pickle from sklearn import svm model=svm.SVC() model.fit(x_train,y_train) #z训练模型 pickle.dump(model,open('../9.2/svm.model','wb')) #保存模型,可通过:model=pickle.load(open('../9.2/svm.model','rb')) 加载模型 from sklearn import metrics #导入相关库,生产混淆矩阵 cm_train=metrics.confusion_matrix(y_train,model.predict(x_train)) #训练样本的混淆矩阵 cm_test=metrics.confusion_matrix(y_test,model.predict(x_test)) #测试样本的混淆矩阵 pd.DataFrame(cm_train,index=range(1,4),columns=range(1,4)).to_excel('../9.2/cm_train.xls') #转化为DataFrame对象,并保存 pd.DataFrame(cm_test,index=range(1,5),columns=range(1,5)).to_excel('../9.2/cm_test.xls')