Ay: Şubat 2019

Matlab’da Matris Birleştirmek

Matrisleri hem dikey hem yatay olarak birleştirebilirsiniz. Satır sayısını arttırmak için virgül ile yeni matris yaratmanız gereklidir. Şu şekilde:

bir=[0,1,1,1,0,1,1,1,0,0,0] %başlangıç

dort=[iki;iki;iki;iki;iki]

dort =

 0     0     1     1     1     0
 1     1     1     0     0     0
 0     0     0     0     1     1
 0     0     1     1     1     0
 1     1     1     0     0     0
 0     0     0     0     1     1
 0     0     1     1     1     0
 1     1     1     0     0     0
 0     0     0     0     1     1
 0     0     1     1     1     0
 1     1     1     0     0     0
 0     0     0     0     1     1
 0     0     1     1     1     0
 1     1     1     0     0     0
 0     0     0     0     1     1

Matrisi bu şekilde büyütebilirsiniz. Şimdi genişletmek için yapmamız gereken mevzuyu gösterelim:

bes=[dort,dort,dort,dort]

bes =

Columns 1 through 16

 0     0     1     1     1     0     0     0     1     1     1     0     0     0     1     1
 1     1     1     0     0     0     1     1     1     0     0     0     1     1     1     0
 0     0     0     0     1     1     0     0     0     0     1     1     0     0     0     0
 0     0     1     1     1     0     0     0     1     1     1     0     0     0     1     1
 1     1     1     0     0     0     1     1     1     0     0     0     1     1     1     0
 0     0     0     0     1     1     0     0     0     0     1     1     0     0     0     0
 0     0     1     1     1     0     0     0     1     1     1     0     0     0     1     1
 1     1     1     0     0     0     1     1     1     0     0     0     1     1     1     0
 0     0     0     0     1     1     0     0     0     0     1     1     0     0     0     0
 0     0     1     1     1     0     0     0     1     1     1     0     0     0     1     1
 1     1     1     0     0     0     1     1     1     0     0     0     1     1     1     0
 0     0     0     0     1     1     0     0     0     0     1     1     0     0     0     0
 0     0     1     1     1     0     0     0     1     1     1     0     0     0     1     1
 1     1     1     0     0     0     1     1     1     0     0     0     1     1     1     0
 0     0     0     0     1     1     0     0     0     0     1     1     0     0     0     0

Columns 17 through 24

 1     0     0     0     1     1     1     0
 0     0     1     1     1     0     0     0
 1     1     0     0     0     0     1     1
 1     0     0     0     1     1     1     0
 0     0     1     1     1     0     0     0
 1     1     0     0     0     0     1     1
 1     0     0     0     1     1     1     0
 0     0     1     1     1     0     0     0
 1     1     0     0     0     0     1     1
 1     0     0     0     1     1     1     0
 0     0     1     1     1     0     0     0
 1     1     0     0     0     0     1     1
 1     0     0     0     1     1     1     0
 0     0     1     1     1     0     0     0
 1     1     0     0     0     0     1     1

Bu şekilde işlemler gerçekleştirilebilir.

Matlab’da çeşitli classification araçları

KNN, Naive Bayes, Decision Tree, Random Forest, SVM algoritmalarının örnek implementasyonu ekteki kodda bulunmaktadır:

load fisheriris
X = meas;
Y = species;
%KNN
Mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);
Mdl.predict([1,1,1,1]); %say it setosho.
Mdl.predict([10,5,44,66]); %Virginica
Mdl.predict([0,0,0,0]); %Versicolor
%SVM
%svm=fitcsvm(X,Y); You cannot train Svm for more than 2 class
%svm is for binary classification.
%Naive Bayes
naive=fitcnb(X,Y);
naive.predict([1,1,1,1]); %versicolor
naive.predict([10,5,44,66]); %Virginica
naive.predict([0,0,0,0]); %Versicolor. İt is interesting.
%Decision Tree
decisionTree=fitctree(X,Y)
decisionTree.predict([1,1,1,1]); %Setosa
decisionTree.predict([10,5,44,66]); %Virginica
decisionTree.predict([0,0,0,0]); %Setosa
%view(decisionTree,'Mode','graph'); %Decision Tree Visualizer.
dt2 = prune(decisionTree); %Nothing change in pruning.
%view(dt2,'Mode','graph');
%Random Forest
randomforest=TreeBagger(10,X,Y)
randomforest.predict([1,1,1,1]) %setosa
randomforest.predict([10,5,44,66]) %virginica
randomforest.predict([0,0,0,0]) %setosa

Kaynaklar:

https://www.mathworks.com/help/stats/fitcsvm.html

https://www.mathworks.com/help/stats/examples/classification.html

https://www.mathworks.com/help/stats/treebagger.html

Sklearn Voting Classification

Voting bildiğiniz gibi makine öğrenmesi makalelerin vazgeçilmezidir. Bir kaç yöntemi birleştirip kullanarak

Bir kaç algoritmayı birleştirip sonuçların keskinleşmesini sağlarız. Üstelik bazı algoritmalara daha yüksek öncelik verebiliriz. Yalnız her şeyin çözümü (Silver Bullet) değildir. Örneğini de verelim ve bırakalım:

from sklearn.ensemble import VotingClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import LinearSVC
from sklearn.svm import NuSVC
from sklearn.naive_bayes import GaussianNB
knn2=KNeighborsClassifier(n_neighbors=13)
ada2=AdaBoostClassifier(n_estimators=150)
dt2=DecisionTreeClassifier()
linsvc=LinearSVC()
nusvc=NuSVC()
randomforest=RandomForestClassifier(n_estimators=50,random_state=4)
votme=VotingClassifier([('knn',knn2),('decisiontree',dt2),("randomforest",randomforest)
,("LinearSvc",linsvc),("NuSvc",nusvc)
])
votme.fit(x_train,y_train)
ypred=votme.predict(x_test)
cm=confusion_matrix(y_test,ypred)
accscr=accuracy_score(y_test,ypred)
print(cm)
print(accscr)
view raw votingclass.py hosted with ❤ by GitHub