标准化python-scikit-learn(LinearSVC)

标准化python-scikit-learn(LinearSVC),python,plot,standards,Python,Plot,Standards,早上好, 我写这篇文章是想就困扰我的问题提供一些可能的提示。 我必须完成的任务之一是验证乳腺癌测试集的分类准确性 一开始是非常愉快的,变量X和y在检索基时,划分为子集(70/30,随机_状态=2),发现C在测试集中的分类精度最高,标准化时刻到来。这是我与墙壁的碰撞 命令的第二部分是: 标准化训练数据,并将所学的平均值和标准偏差应用于测试集。重新训练LinearSVC模型,这次是对转换后的数据。比较测试集上的分类精度 从训练集中确定StandardScaler参数,然后根据训练集中确定的参数转换测

早上好, 我写这篇文章是想就困扰我的问题提供一些可能的提示。 我必须完成的任务之一是验证乳腺癌测试集的分类准确性

一开始是非常愉快的,变量X和y在检索基时,划分为子集(70/30,随机_状态=2),发现C在测试集中的分类精度最高,标准化时刻到来。这是我与墙壁的碰撞

命令的第二部分是:

标准化训练数据,并将所学的平均值和标准偏差应用于测试集。重新训练LinearSVC模型,这次是对转换后的数据。比较测试集上的分类精度

从训练集中确定StandardScaler参数,然后根据训练集中确定的参数转换测试集

我的猜测是,我将得到StandardScaler的平均值和偏差(用_std=True,用_mean=True),但如何将其“放入”数据测试中我不知道:(

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()