生活随笔
收集整理的這篇文章主要介紹了
基于水色图像的水质评价
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需要安裝mkl版本的numpy ,不然會報錯
from . import _iterative?
ImportError: DLL load failed:?
#-*- coding: utf-8 -*-
import pandas as pdinputfile = '../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)
總結
以上是生活随笔為你收集整理的基于水色图像的水质评价的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。