Um meinen Testsatz auf SVM anzuwenden Ich möchte keine train_test_split -Funktion verwenden. Ich möchte meinen Testsatz auf SVM anwenden, ohne ein Training auf Maschine zu machen. Ich habe einen einfachen Code wie folgt geschrieben. Wenn ich meine Sets auf SVM anwende, wird die Genauigkeit wert, aber wenn ich train_test_split -Funktion verwende, ist die Genauigkeit in Ordnung. Was ist los mit meinem Code?
`< /p>
#Training dataset
F_HED = np.array(np.abs(ZZ_1))
F_NonHED = np.array(np.abs(ZZ_N1))
Y1 = np.ones(F_HED.shape[0]) #label 1 for HED
Y2 = np.zeros(F_NonHED.shape[0]) #label 0 for Non-HED
#Combining Train sets
X = np.vstack((F_HED, F_NonHED))
Y = np.hstack((Y1, Y2))
#Testing dataset
X_Test1 = np.array(np.abs(ZZ_X))
X_Test2 = np.array(np.abs(ZZ_NX))
Y_Test1 = np.ones(X_Test1.shape[0]) #label 1 Due to being HED
Y_Test2 = np.zeros(X_Test2.shape[0]) #label 0 Due to being HED
#Combining Test Sets
X_Test = np.vstack((X_Test2, X_Test2))
Y_Test = np.hstack((Y_Test2, Y_Test2))
#Normalizing
Scaler = StandardScaler()
X_Train_S = Scaler.fit_transform(X)
X_Test_S = Scaler.transform(X_Test)
#Classifier
clf = SVC(kernel='rbf', C=10)
clf.fit(X_Train_S, Y)
#Predict part
Y_pred = clf.predict(X_Test_S)
TN, FP, FN, TP = confusion_matrix(Y_Test, Y_pred, labels=[0, 1]).ravel()
print("Confusion Matrix:")
print(f"TN: {TN}, FP: {FP}, FN: {FN}, TP: {TP}")`
Confusion Matrix:
TN: 24, FP: 12, FN: 0, TP: 0
< /code>
Dies ist die Ausgabe meines Codes, von der ich erwartet hatte, dass mindestens FP und FN weniger als 5 sein würden, aber in dieser Ausgabe ist das Worth -Ding mit TP, was Null ist. Tatsächlich sollte es nahe bei 22 sein.
SVM-Training und Test ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post