def test_ml_pipeline(): 'load a test data set, run SVM on it, and plot the predictions vs the actual values' data, targets = ReactivityDataLoader().load_mopac_learning() regressor = SVR(C=1000) trainData, testData, trainTargets, testTargets = train_test_split(data, targets) regressor.fit(trainData, trainTargets) os.chdir(str(Path.home() / 'Desktop')) main.plotScatterPlot(testTargets, regressor.predict(testData), 'predictedVsActual')
class SVRImpl(): def __init__(self, kernel='rbf', degree=3, gamma='auto_deprecated', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=(-1)): self._hyperparams = { 'kernel': kernel, 'degree': degree, 'gamma': gamma, 'coef0': coef0, 'tol': tol, 'C': C, 'epsilon': epsilon, 'shrinking': shrinking, 'cache_size': cache_size, 'verbose': verbose, 'max_iter': max_iter } self._wrapped_model = SKLModel(**self._hyperparams) def fit(self, X, y=None): if (y is not None): self._wrapped_model.fit(X, y) else: self._wrapped_model.fit(X) return self def predict(self, X): return self._wrapped_model.predict(X)
from ex30.ex30_lib_graph import plot2 from sklearn.svm.classes import SVR OUTPUT_PNG_FILE = '/experiments/ex30/ex30_svr.png' X = [[float(x)] for x in range(0, 24)] Y = [ 12.0, 13.0, 13.0, 13.0, 28.0, 31.0, 38.0, 60.0, 85.0, 80.0, 64.0, 60.0, 59.0, 58.0, 65.0, 70.0, 80.0, 90.0, 110.0, 100.0, 85.0, 65.0, 45.0, 20.0 ] X2 = [[float(x) / 10.0] for x in range(0, 231)] model = SVR(kernel='rbf', C=10) model.fit(X, Y) Y_pred = model.predict(X2) print(str(Y_pred)) plot2(Y, Y_pred, OUTPUT_PNG_FILE, "Observed pollution concentration levels", "Predicted pollution concentration levels by SVR")