Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 支持向量机的处理时间_Python_Svm - Fatal编程技术网

Python 支持向量机的处理时间

Python 支持向量机的处理时间,python,svm,Python,Svm,我是SVM的新手,我正试图通过教程自学。我最近尝试创建一个示例svm测试,但是,运行时似乎没完没了。如果我的数据帧有7976行,典型的处理时间是多少 import numpy as np from sklearn import svm from sklearn import preprocessing import pandas as pd import os directory_name = 'D:\Timothy\Practice SVM\Data' name_of_file = 'Sam

我是SVM的新手,我正试图通过教程自学。我最近尝试创建一个示例svm测试,但是,
运行时
似乎没完没了。如果我的数据帧有7976行,典型的处理时间是多少

import numpy as np
from sklearn import svm
from sklearn import preprocessing
import pandas as pd
import os

directory_name = 'D:\Timothy\Practice SVM\Data'
name_of_file = 'Sample_SVM.csv'

df_start = pd.read_csv(os.path.join(directory_name, name_of_file))
df_cleaned = df_start.dropna()

X = df_cleaned.ix[1:8000, 'Sun'].as_matrix()
X = X.reshape((7976,1))  #unsure if this step is needed
X_test = df_cleaned.ix[8000:9913, 'Sun'].as_matrix()

y = df_cleaned.ix[1:8000, 'Meter_Total'].as_matrix()
y_test = df_cleaned.ix[8000:9913, 'Meter_Total'].as_matrix()

model = svm.SVC(kernel='linear', C=1, gamma=1)

model.fit(X,y)
model.score(X, y)

predicted = model.predict(X_test)

假设:当你使用“运行时”这个词时,它可以是“训练时间”或“测试时间”(在给定程序中),但是由于你说数据文件有7976行,所以我将它视为训练时间。 考虑到线性支持向量机,在训练时必须通过求解二次问题来估计向量w和偏差b,从而找到支持向量。 一般来说,测试一个人是否已达到最优解需要n²点积的阶数,而解决二次问题涉及到“核”矩阵的求逆,其阶数为n³。(这里,n是训练集中的样本数)。然而,人们几乎不需要估计最优解;线性支持向量机达到一定泛化误差水平的训练时间实际上随着训练集大小的增加而减少。通常情况下,这在很大程度上取决于所使用的技术,但除了最先进的线性支持向量机或近似解算器外,所有支持向量机的训练时间预计为n²


准确地说,对于线性支持向量机(如liblinear)的scikit学习包(n_样本*n_功能),还需要注意的是,强正则化(低C)也会加快收敛速度。

您的数据是否标准化了?