Dzień dobry,
piszę tego posta w celu możliwych podpowiedzi na nurtującą mnie kwestię.
Jednym z zadań zbioru, które muszę wykonać jest zadanie, polegające na weryfikacji dokładności klasyfikacji na zbiorze testowym bazy Breast Cancer.
Początek był bardzo przyjemny, zmienne X oraz y przy pobieraniu bazy, podział na podzbiory (70/30 oraz random_state=2 jest narzucone), znalezienie C, dla którego dokładność klasyfikacji w zbiorze testowym jest największa i przychodzi moment Standaryzacji. I tu następuje moje zderzenie ze ścianą. ;)
X, y = load_breast_cancer(return_X_y=True)
temp = 0.0
maxVal = 0.0
maxValIndex = 0
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=2)
accX = np.around(np.arange(0.01, 5.0, 1.0), decimals=2)
accY = []
for i in range(len(accX)):
model = svm.SVC(kernel='linear', C=accX[i]).fit(X_train, y_train)
acc = model.score(X_test, y_test) * 100
accY.append(acc)
if acc > temp:
maxVal = acc
maxValIndex = accX[i]
temp = acc
print(f'Dokładność klasyfikacji na zbiorze testowym {accX[i]} wynosi {acc:.3f}%')
print(f'maxVal {maxVal} najwieksze dla {maxValIndex}')
plt.figure()
plt.scatter(accX, accY, c='blue')
plt.title("Wykres funkcji [Zadanie 1]")
plt.xlabel('C = ?')
plt.ylabel('Dokładność ( % )')
plt.show()
Druga część polecenia brzmi:
"Wykonać standaryzację danych treningowych, a wyuczone średnie i odchylenia standardowe zastosować do zbioru testowego. Ponownie wytrenować model LinearSVC , tym razem na przekształconych danych. Porównać dokładność klasyfikacji na zbiorze testowym."
"Wyznaczyć parametry StandardScaler na podstawie zbioru treningowego, a następnie przekształcić zbiór testowy na podstawie wyznaczonych parametrów na zbiorze treningowym. "
Domyślam się że średnie i odchylenie pobiorę sobie z StandardScaler(with_std=True, with_mean=True).fit(), ale kompletnie nie wiem co wrzucić w fit tutaj jak i przy modelu SVC oraz jakie zmienne dać do score.
Dziękuję za jakąkolwiek pomoc,
Jeśli należy coś dopowiedzieć to także proszę napisać. :3