Я использовал модель машины опорных векторов для классификации с использованием набора данных радужной оболочки. Я использовал функцию разделения теста поезда для разделения набора данных на подмножества обучения и тестирования.
когда test_size был равен 0,3, точность была низкой, а затем я уменьшил размер подмножества тестирования до 0,06, а теперь точность равна 1, т.е. 100%. Очевидно, причина ясна, потому что с данными испытаний количество шума и колебаний по мере уменьшения.
Мой вопрос: мы хотим, чтобы наша модель была эффективной, но какое значение test_size для этого приемлемо. при каком значении test_size результат будет жизнеспособным.
вот какая-то строка кода из моей программы-
from sklearn import datasets
from sklearn import svm
import numpy as np
from sklearn import metrics
iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target
C=1.0
from sklearn.cross_validation import train_test_split
x_train, x_test, y_train ,y_test = train_test_split(X,y,test_size=0.06, random_state=4)
svc = svm.SVC(kernel='linear', C=C).fit(x_train,y_train)
y_pred = svc.predict(x_test)
print(metrics.accuracy_score(y_test,y_pred))
lin_svc = svm.LinearSVC(C=C).fit(x_train,y_train)
y_pred = lin_svc.predict(x_test)
print(metrics.accuracy_score(y_test,y_pred))
rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(x_train,y_train)
y_pred =rbf_svc.predict(x_test)
print(metrics.accuracy_score(y_test,y_pred))
poly_svc = svm.SVC(kernel='poly',degree=3, C=C).fit(x_train,y_train)
y_pred = poly_svc.predict(x_test)
print(metrics.accuracy_score(y_test,y_pred))
результат - точность 100% для всех 4 случаев.