๋ ๋ค๋ฅธ ๋ชจ๋ธ, SVM
from sklearn import svm
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
import pandas as pd
# svm ๋ชจ๋ธ ๋ถ๋ฌ์ค๊ธฐ 7๊ฐ์ง ๋ชจ๋ธ ์ค svm.SVC๋ก ๋ถ๋ฌ์ด
svm_clf = svm.SVC(kernel="linear")
# training dataset ๋ถ๋ฌ์ค๊ธฐ
train_data = pd.read_csv("C:/Users/1ayou/PycharmProjects/dacon_astronomy/dataset/train.csv")
X = train_data.iloc[:, 2:]
y = train_data.iloc[:, 1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=11)
# ๋ชจ๋ธ ํ์ต, ๊ทผ๋ฐ ์ ์๋์๊ฐ๊น?
svm_clf.fit(X_train, y_train)
# ๋ชจ๋ธ ์์ธก
svm_pred = svm_clf.predict(X_test)
# ์ ํ๋ ์ถ๋ ฅ
print(accuracy_score(y_test, svm_pred))
- svm ๋ชจ๋ธ์ ์ฅ์
- ๊ณ ์ฐจ์ ๊ณต๊ฐ์์ ์ข์ ์ฑ๋ฅ์ ๋ณด์
- ์ํ์ ์๋ณด๋ค ์ฐจ์ ์๊ฐ ๋ ํฐ ๊ฒฝ์ฐ์๋ ํจ๊ณผ์ ์
- support vectors๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒฐ์ ํจ์์์ ํธ๋ ์ด๋ ํฌ์ธํธ์ ๋ถ๋ถ์งํฉ์ด ์ฌ์ฉ๋จ → ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ์ข์
- ๋ค์ํ ์ปค๋ ํจ์๋ค์ ๊ฒฐ์ ํจ์๋ฅผ ๊ตฌ์ฒดํํ ์ ์์, ์ผ๋ฐ์ ์ธ ์ปค๋๋ค์ ์ ๊ณต๋๋ ์ง์ ์ปค๋๋ค์ ์ ์ํ ์ ์์
- svm ๋ชจ๋ธ์ ๋จ์
- ํผ์ณ์ ์๊ฐ ์ํ์ ์๋ณด๋ค ํจ์ฌ ๋ ํฌ๋ค๋ฉด ์ปค๋ํจ์๋ฅผ ๊ณ ๋ฅด๊ณ ์ ๊ทํ์ฌ ์ค๋ฒํผํ ์ ํผํ๋ ๊ฒ์ด ํ์์ ์
- svm์ ํ๋ฅ ์ ์ถ์ ์น๋ฅผ ๋ฐ๋ก ์ ๊ณตํ์ง ์์, ์ด๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ๋น์ฉ์ด ๋ง์ด ํ์ํ five-fold cross-validation์ ์ด์ฉ
SVM์ ํ์ดํผํ๋ผ๋ฏธํฐ ๋ถ์
- SVM ๋ชจ๋ธ์ ๋ค์๊ณผ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
- SVM ๋ชจ๋ธ๋ค ์ค multi-class classification์ด ๊ฐ๋ฅํ ๋ชจ๋ธ๋ค์ด ์กด์ฌํจ
- ovo(One-Versus-One)์ด๋ผ๊ณ ํ๋ฉฐ, ํ๋์ ๋ถ๋ฅ๊ธฐ๊ฐ ์ฌ๋ฌ ํด๋์ค ์ค ๋๊ฐ์ง ํด๋์ค์ ๋ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ต, ์ด๋ ๊ฒ ์ฌ๋ฌ ๋ถ๋ฅ๊ธฐ๋ค์ด ๊ฐ๊ฐ์ ๋ ํด๋์ค์ ๋ํด์ ํ์ตํ ํ ๊ฐ ๋ถ๋ฅ๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ์กฐํฉํ์ฌ ์ต์ข ๋ถ๋ฅ๋ฅผ ๊ฒฐ์
- ovr(One-Versus-Rest) ๋ถ๋ฅ๊ธฐ๋ ํ๋์ ํด๋์ค๋ฅผ ๋ค๋ฅธ ๋ชจ๋ ํด๋์ค์ ๋ถ๋ฅํ๋๋ก ํ์ตํ๋ ๋ฐฉ์
- svm.LinearSVC
- binary, multi class classification์ด ๋ชจ๋ ๊ฐ๋ฅํจ
- kernel ํ๋ผ๋ฏธํฐ๊ฐ ์์ผ๋ฉฐ, ์ ํ์ผ๋ก ์ถ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ
- fit ํ ๋ ํ๋ผ๋ฏธํฐ๋ 2๊ฐ๊ฐ ๋ค์ด๊ฐ(X_train, y_train)
- ovr ๋ฐฉ์์ ์ด์ฉํด multi-class ๋ถ๋ฅ ์ํ
- multi_class = “cramer_singer”
- svm.LinearSVR
- Linear Support Vector Regression
- svm.NuSVC
- Nu-Support Vector Classification
- binary, multi class classification์ด ๋ชจ๋ ๊ฐ๋ฅํจ
- svm.SVC์ ์ ์ฌํ ๋ฐฉ์์ด์ง๋ง ์ํ๊ณต์๊ณผ ๊ตฌ์ฑ๋ ํ๋ผ๋ฏธํฐ๋ค์ด ์กฐ๊ธ์ฉ ๋ค๋ฆ
- fit ํ ๋ ํ๋ผ๋ฏธํฐ๋ 2๊ฐ๊ฐ ๋ค์ด๊ฐ(X_train, y_train)
- ovo ๋ฐฉ์์ ์ด์ฉํด multi-class ๋ถ๋ฅ ์ํ
- svm.NuSVR
- Nu-Support Vector Regression
- svm.OneClassSVM
- Unsupervised Outlier Detection
- svm.SVC
- C-Support Vector Classification
- binary, multi class classification์ด ๋ชจ๋ ๊ฐ๋ฅํจ
- fit ํ ๋ ํ๋ผ๋ฏธํฐ๋ 2๊ฐ๊ฐ ๋ค์ด๊ฐ(X_train, y_train)
- ovo ๋ฐฉ์์ ์ด์ฉํด multi-class ๋ถ๋ฅ ์ํ
- svm.SVR
- Epsilon-Support Vector Regression
- svm.li_min_c
- Return the lowest bound for C
- svm ๋ชจ๋ธ์ ๊ฒฐ์ ํจ์๋ ํธ๋ ์ด๋ ๋ฐ์ดํฐ์ ์ ๋ถ๋ถ์งํฉ์ ์ํด ๊ฒฐ์ ๋๋๋ฐ, ์ด๋ฅผ support vectors๋ผ๊ณ ๋ถ๋ฆ
- ์ด support vectors์ ๋ช๋ช ์ฑ์ง๋ค์ ์ธ๊ฐ์ง attribute์ ์ด์ฉํด ๊ตฌํ ์ ์์
- suppport_vectors_ , support_ , n_support_
์ถ์ฒ
- https://scikit-learn.org/stable/modules/classes.html#module-sklearn.svm
- https://scikit-learn.org/stable/modules/svm.html#svm
- https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC
- chat gpt4
'๐ก WIDA > DACON ๋ถ๋ฅ-ํ๊ท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DACON/๊น๊ท๋ฆฌ] ํ๋ก์ ํธ ์์ธ์ด (4) | 2023.05.05 |
---|---|
[DACON/์ฐธ๊ณ ์๋ฃ] ์์๋ธ ๋ชจ๋ธ (0) | 2023.05.01 |
[DACON/์ต๋ค์] ํ์ด์ฌ์ ์ด์ฉํ EDA (0) | 2023.04.07 |
[DACON/๊น๊ท๋ฆฌ] ํ์ด์ฌ์ ์ด์ฉํ EDA (0) | 2023.04.07 |
[DACON/๊น๊ฒฝ์] ํ์ด์ฌ์ ์ด์ฉํ EDA (0) | 2023.04.07 |