1. 程式人生 > 其它 >MATLAB影象處理基礎

MATLAB影象處理基礎

技術標籤:Matlab

1.匯入資料
1.1 使用readtable("")匯入資料,並存儲在表格中,使用axis equal可以校正座標軸縱橫比。

letter = readtable("M.txt");
plot(letter.X,letter.Y)
axis equal

1.2 **range(x)**函式返回x的值的範圍,即max(x) - min(x)的值。

aratio = range(letter.Y) / range(letter.X)

1.3 使用scatter(x,y)可以繪製散點圖,使用gscatter可以對散點圖進行分類著色。

scatter (features.AspectRatio,features.Duration)
%類別儲存在,features.Character中
gscatter(features.AspectRatio,features.Duration,features.Character)

1.4 KNN使用例項

  • 使用fitcknn(data,"")來進行分類,第一個引數是訓練資料,第二個引數是類別,預設k = 1,即根據一個引數來進行分類,可以設定k的值,返回分類的模型。
  • 使用predict(model,data)來進行預測,第一個引數是訓練的模型,第二個引數是預測的資料,返回分類的情況。
%搭建knn模型,根據features.Character來分類
knnmodel = fitcknn(features,"Character")
%預測新資料,檢驗模型效能
predictions = predict (knnmodel,testdata)
%將分類結果與實際類別比較
re = predictions == testdata.Character

%設定 k = 5
knnmodel = fitcknn(features,"Character","NumNeighbors",5)
predictions = predict (knnmodel,testdata)
re = predictions == testdata.Character

1.5 計算預測準確率

iscorrect = testdata.Character == predictions
% 對邏輯陣列求和,即可計算預測正確的數量
accuracy = sum(iscorrect) / numel (iscorrect)

1.6 通過confusionchart()函式可以檢視實際分類與預測分類的混淆矩陣,第一個引數為實際分類向量,第二個引數為預測分類向量。

confusionchart(testdata.Character,predictions)

在這裡插入圖片描述