<jupyter_start><jupyter_text>SUPPORT VECTOR REGRESSIONSupport Vector Regression(SVR) adalah teknik Supervised Learning yang mengadopsi teknik Support Vector Machine(SVM). Yang membedakan adalah SVR menggunakan hyperplane sebagai dasar untuk membuat margin dan garis pembatas.Apakah yang membedakan SVR dengan regresi linear?Pada regresi linear, kita membuat model berdasarkan perhitungan error yang paling kecil. Sedangkan pada SVR, kita membatasi error pada treshold tertentu.Untuk lebih jelasnya perhatikan gambar berikut. ![image.png](attachment:image.png) biru: hyperplanemerah: garis pembatas Pada gambar diatas, terlihat bahwa data-data point  terletak di dalam garis pembatas. Prinsip algoritma SVR dalam menentukan hyperplane adalah memperhitungkan jumlah data point yang terletak di dalam garis pembatas. Jadi garis prediksi yang terbaik adalah hyperplane yang mempunyai data point terbanyak dalam garis pembatas. Garis pembatas $\epsilon$ bisa kita tentukan sendiri dalam merancang model SVR. Sebagai contoh, misalkan kita mempunyai hyperplane dengan persamaan sebagai berikut.$Wx + b = 0$Maka persamaan garis pembatas berdasarkan hyperplane diatas adalah:$Wx + b = \epsilon$$Wx + b = -\epsilon$Jadi, data point yang akan dihitung sebagai penentuan model SVR, akan memenuhi persamaan dibawah ini.$-\epsilon \leq y - Wx + b\leq \epsilon $ ![image.png](attachment:image.png)  CODING SECTION Misalkan kita ingin menganalisa tingkat kejujuran calon karyawan baru. pada pekerjaan yang dia ingin lamar, dia menceritakan bahwa sudah memiliki pengalaman di pekerjaan tersebut selama 16 tahun dan mempunyai gaji sebesar 20 juta rupiah di perusahaan sebelumnya. Kita ingin melakukan pengecekan terhadap pernyataan calon karyawan tersebut. kita melakukan pengecekan terhadap data-data karyawan yang bekerja di bidang yang sama, yang sudah kita ambil dari situs pencarian kerja. Data dibawah ini adalah data gaji karyawan-karyawan terhadap lama pengalaman mereka bekerja.<jupyter_code>import numpy as np #aljabar linear
import pandas as pd #pengolahan data
import matplotlib.pyplot as plt #visualisasi
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv('salary.csv') #membaca data
df.head(10)
#mengubah data menjadi array agar bisa dilakukan proses machine learning
X = df.pengalaman.values.reshape(-1,1) 
y = df.gaji.values
#Memisah data untuk proses data latih dan data uji
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 1/4, random_state = 42)
#import algoritma dari scikit-learn
from sklearn.svm import SVR
model = SVR(gamma = 'auto',  kernel='rbf')
#memuat machine learning terhadap data latih
model.fit(X, y)<jupyter_output><empty_output><jupyter_text>Visualisasi<jupyter_code># data latih
X_grid = np.arange(min(X), max(X), 0.1)
X_grid = X_grid.reshape((len(X_grid), 1))
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_grid, model.predict(X_grid), color = 'blue')
plt.title('Gaji vs Pengalaman (Training Set)')
plt.xlabel('pengalaman')
plt.ylabel('gaji')
plt.show()
#data uji

X_grid = np.arange(min(X), max(X), 0.1)
X_grid = X_grid.reshape((len(X_grid), 1))
plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_grid, model.predict(X_grid), color = 'blue')
plt.title('Gaji vs Pengalaman (Test set)')
plt.xlabel('pengalaman')
plt.ylabel('gaji')
plt.show()
model.predict(np.array(16).reshape(1,-1))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08481492276304284, 'fraction_numerical': 0.006703584960652871, 'mean_word_length': 6.19496855345912, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '668066', 'license': 'MIT', 'n_tokens_mistral': 1353, 'n_tokens_neox': 1272, 'n_words': 374, 'path': '2 Regression/2.3 support vector regression/SVR.ipynb', 'repo_name': 'jordihasianta/DS_Kitchen', 'size': '3431'}