生活随笔
收集整理的這篇文章主要介紹了
基于水色图像的水质评价
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需要安裝mkl版本的numpy ,不然會(huì)報(bào)錯(cuò)
from . import _iterative?
ImportError: DLL load failed:?
#-*- coding: utf-8 -*-
import pandas as pdinputfile = '../data/moment.csv' #數(shù)據(jù)文件
outputfile1 = '../tmp/cm_train.xls' #訓(xùn)練樣本混淆矩陣保存路徑
outputfile2 = '../tmp/cm_test.xls' #測(cè)試樣本混淆矩陣保存路徑
data = pd.read_csv(inputfile, encoding = 'gbk') #讀取數(shù)據(jù),指定編碼為gbk
data = data.as_matrix()from numpy.random import shuffle #引入隨機(jī)函數(shù)
shuffle(data) #隨機(jī)打亂數(shù)據(jù)
data_train = data[:int(0.8*len(data)), :] #選取前80%為訓(xùn)練數(shù)據(jù)
data_test = data[int(0.8*len(data)):, :] #選取前20%為測(cè)試數(shù)據(jù)#構(gòu)造特征和標(biāo)簽
x_train=data_train[:, 2:]*30#2表示從第2列(最左側(cè)的列是第0列)開始取數(shù)據(jù)(注意前面打亂過數(shù)據(jù))
y_train = data_train[:, 0].astype(int)
x_test = data_test[:, 2:]*30
y_test = data_test[:, 0].astype(int)#導(dǎo)入模型相關(guān)的函數(shù),建立并且訓(xùn)練模型
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'))#導(dǎo)入輸出相關(guān)的庫,生成混淆矩陣
from sklearn import metrics
cm_train = metrics.confusion_matrix(y_train, model.predict(x_train)) #訓(xùn)練樣本的混淆矩陣
#之所以樣本也需要混淆矩陣的原因是,x_train和y_train之間通過訓(xùn)練得到的關(guān)系,不能確保
#100%和數(shù)據(jù)集吻合,混淆矩陣用來判斷通過訓(xùn)練集得到的模型(也就是x_train和y_train之間的函數(shù)關(guān)系)的質(zhì)量好壞。顯然如果質(zhì)量不行就不用作后面的預(yù)測(cè)工作了
cm_test = metrics.confusion_matrix(y_test, model.predict(x_test)) #測(cè)試樣本的混淆矩陣
#用訓(xùn)練集中得到的樣本,來對(duì)x_test進(jìn)行預(yù)測(cè),看預(yù)測(cè)結(jié)果與y_test是否吻合,預(yù)測(cè)的準(zhǔn)確程度通過混淆矩陣來判定。#以上兩句話的意圖是,在訓(xùn)練集的訓(xùn)練模型比較準(zhǔn)確的情況下,再把模型用于測(cè)試集。#保存結(jié)果,使用了上面的cm_train和cm_test作為參數(shù)
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)
總結(jié)
以上是生活随笔為你收集整理的基于水色图像的水质评价的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。