需要安装mkl版本的numpy ,不然会报错
from . import _iterative
ImportError: DLL load failed:
#-*- coding: utf-8 -*- import pandas as pd inputfile = '../data/moment.csv' #数据文件 outputfile1 = '../tmp/cm_train.xls' #训练样本混淆矩阵保存路径 outputfile2 = '../tmp/cm_test.xls' #测试样本混淆矩阵保存路径 data = pd.read_csv(inputfile, encoding = 'gbk') #读取数据,指定编码为gbk data = data.as_matrix() from numpy.random import shuffle #引入随机函数 shuffle(data) #随机打乱数据 data_train = data[:int(0.8*len(data)), :] #选取前80%为训练数据 data_test = data[int(0.8*len(data)):, :] #选取前20%为测试数据 #构造特征和标签 x_train=data_train[:, 2:]*30#2表示从第2列(最左侧的列是第0列)开始取数据(注意前面打乱过数据) y_train = data_train[:, 0].astype(int) x_test = data_test[:, 2:]*30 y_test = data_test[:, 0].astype(int) #导入模型相关的函数,建立并且训练模型 from sklearn import svm model = svm.SVC() model.fit(x_train, y_train) import pickle pickle.dump(model, open('../tmp/svm.model', 'wb')) #最后一句保存模型,以后可以通过下面语句重新加载模型: #model = pickle.load(open('../tmp/svm.model', 'rb')) #导入输出相关的库,生成混淆矩阵 from sklearn import metrics cm_train = metrics.confusion_matrix(y_train, model.predict(x_train)) #训练样本的混淆矩阵 #之所以样本也需要混淆矩阵的原因是,x_train和y_train之间通过训练得到的关系,不能确保 #100%和数据集吻合,混淆矩阵用来判断通过训练集得到的模型(也就是x_train和y_train之间的函数关系)的质量好坏。显然如果质量不行就不用作后面的预测工作了 cm_test = metrics.confusion_matrix(y_test, model.predict(x_test)) #测试样本的混淆矩阵 #用训练集中得到的样本,来对x_test进行预测,看预测结果与y_test是否吻合,预测的准确程度通过混淆矩阵来判定。 #以上两句话的意图是,在训练集的训练模型比较准确的情况下,再把模型用于测试集。 #保存结果,使用了上面的cm_train和cm_test作为参数 pd.DataFrame(cm_train, index = range(1, 6), columns = range(1, 6)).to_excel(outputfile1) pd.DataFrame(cm_test, index = range(1, 6), columns = range(1, 6)).to_excel(outputfile2)