当前位置: 首页 > 知识库问答 >
问题:

SVM的标准化数据-Scikit learn/Python

艾焱
2023-03-14

这适用于必须使用SVM方法来提高模型精度的分配。

共有3部分,编写了下面的代码

import sklearn.datasets as datasets
import sklearn.model_selection as ms
from sklearn.model_selection import train_test_split


digits = datasets.load_digits();
X = digits.data
y = digits.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)

print(X_train.shape)
print(X_test.shape)

from sklearn.svm import SVC
svm_clf = SVC().fit(X_train, y_train)
print(svm_clf.score(X_test,y_test))

但在此之后,问题如下

执行数字标准化。数据,并将转换后的数据存储在可变数字中。

提示:从sklearn.preprocessing.使用所需的实用程序再次,将digits_standardized分成两个集合名称X_train和X_test。此外,将digits.target分成两组Y_train和Y_test。

提示:使用sklearn中的训练测试分割方法。模型选择;将随机_状态设置为30;并进行分层抽样。使用默认参数,从X_序列集和Y_序列标签构建另一个SVM分类器。将模型命名为svm_clf2。

测试数据集上评估模型的准确性并打印其分数。

在上述代码的基础上,尝试编写此代码,但似乎失败了。有谁能帮助我们将数据标准化。

std_scale = preprocessing.StandardScaler().fit(X_train)
X_train_std = std_scale.transform(X_train)
X_test_std  = std_scale.transform(X_test)

svm_clf2 = SVC().fit(X_train, y_train)
print(svm_clf.score(X_test,y_test))

共有2个答案

钱元徽
2023-03-14

尝试此操作,因为最终代码包含所有任务

import sklearn.datasets as datasets
import sklearn.model_selection as ms
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC



digits = datasets.load_digits()
X = digits.data
y = digits.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)

print(X_train.shape)
print(X_test.shape)

svm_clf = SVC().fit(X_train, y_train)
print(svm_clf.score(X_test,y_test))



scaler = StandardScaler()
scaler.fit(X)
digits_standardized = scaler.transform(X)

X_train, X_test, y_train, y_test = train_test_split(digits_standardized, y, random_state=30, stratify=y)


svm_clf2 = SVC().fit(X_train, y_train)
print(svm_clf2.score(X_test,y_test))
吴开宇
2023-03-14

尝试了以下。似乎在工作。

import sklearn.datasets as datasets
import sklearn.model_selection as ms
from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler


digits = datasets.load_digits();


X = digits.data
scaler = StandardScaler()
scaler.fit(X)
digits_standardized = scaler.transform(X)

y = digits.target

X_train, X_test, y_train, y_test = train_test_split(digits_standardized, y, random_state=30, stratify=y)

#print(X_train.shape)
#print(X_test.shape)


from sklearn.svm import SVC
svm_clf2 = SVC().fit(X_train, y_train)
print("Accuracy ",svm_clf2.score(X_test,y_test))
 类似资料:
  • 本文向大家介绍什么是数据标准化,为什么要进行数据标准化?相关面试题,主要包含被问及什么是数据标准化,为什么要进行数据标准化?时的应答技巧和注意事项,需要的朋友参考一下 数据标准化是预处理步骤,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。一般来说,是将该值将去平均值后再除以标准差。如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大(就算这个特别大的特征只是改变了1%,但是

  • 问题内容: 假设我有一个熊猫数据框: 我想计算数据框的列均值。 这很简单: 然后按列范围max(col)-min(col)。这又很容易: 现在,对于每个元素,我要减去其列的均值并除以其列的范围。我不确定该怎么做 任何帮助/指针将不胜感激。 问题答案:

  • 问题内容: 注意:这个问题确实是Split pandas dataframe字符串条目复制到单独行的重复,但是此处提供的答案更通用,更有意义,因此,在所有方面,我选择不删除线程 我有一个具有以下格式的“数据集”: 我想通过复制每个id的所有值来规范化它: 我正在做的是应用split-apply-combine的使用原理,为每个组创建一个 我创建了一个列进行分组,该列仅对行中的id进行计数: 我复制

  • 问题内容: 我正在使用scikit- learn的当前稳定版本0.13。我正在使用class将线性支持向量分类器应用于某些数据。 在scikit-learn文档中有关预处理的章节中,我阅读了以下内容: 学习算法的目标函数中使用的许多元素(例如,支持向量机的RBF内核或线性模型的l1和l2正则化器)都假定所有特征都围绕零为中心并且具有相同顺序的方差。如果某个特征的方差比其他特征大几个数量级,则它可能

  • 本文向大家介绍如何标准化R数据框中的列?,包括了如何标准化R数据框中的列?的使用技巧和注意事项,需要的朋友参考一下 这可以通过使用缩放功能来完成。 示例

  • 问题内容: 我正在寻找一个Java库来对用户生成的文本内容进行一些初始拼写检查/数据标准化,想象一下在Facebook个人资料中输入的兴趣。 该文本将在某些时候被标记化(在拼写校正之前或之后,无论哪种方法效果更好),其中一些文本用作搜索(完全匹配)的键。减少拼写错误和类似内容以产生更多匹配结果将是不错的选择。如果校正在令牌上的效果好于仅一个单词,那将更好,例如,“喝咖啡”将变为“喝咖啡”而不是“思