0
import pandas as pd
import numpy as np
from sklearn import preprocessing, svm
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
import math
import numpy.linalg as la
df = pd.read_csv("DataWithoutHeader162.csv")
df.columns = ['Temperature','Humidity','Windspeed','Traffic','PM 2.5']
#print(df.head())
forecast_col = 'PM 2.5'
df['label'] = df[forecast_col].shift(1)
df.fillna(value=-99999, inplace=True)
X = np.array(df.drop(['label','PM 2.5'] , 1))
X = preprocessing.scale(X)
df.dropna(inplace = True)
y = np.array(df['label'])
df.dropna(inplace = True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.05)
#kernel definition
def radial_basis(gamma=10):
return lambda x, y: np.exp(-gamma*la.norm(np.subtract(x, y)))
#SupportVectorMachine with radial_basis Kernel
clf_SVM_radial_basis = SVC(kernel = radial_basis())
clf_SVM_radial_basis.fit(X_train,y_train)
confidence3 = clf_SVM_radial_basis.score(X_test,y_test)
print("Confidence of SVM with radial_basis Kernel = ",(confidence3*100),"%")
此代码显示错误:我想在自定义RBF内核的scikit-learn中实现SVM,但它显示错误,该怎么办?
Traceback (most recent call last):
File "F:\MachineLearningPyCodes\SvmOnDelhiAqiDataPrbf.py", line 68, in
module
clf_SVM_radial_basis.fit(X_train,y_train)
File "C:\Python35\lib\site-packages\sklearn\svm\base.py", line 189, in fit
fit(X, y, sample_weight, solver_type, kernel, random_seed=seed)
File "C:\Python35\lib\site-packages\sklearn\svm\base.py", line 230, in
_dense_fit
if X.shape[0] != X.shape[1]:
IndexError: tuple index out of range
我尝试不同的方法,但我不能给我的数据集格式化为每个需要我猜,请告诉我一个方法来做到这一点。