机器学习算法的基础(使用Python和R代码)之 SVM
4. SVM(支持向量机)
这是一种分类方法。在这个算法中,我们将每个数据项绘制为n维空间中的一个点(其中n是您拥有的特征的数量),每个特征的值是特定坐标的值。
例如,如果我们只有一个人的身高和头发长度这两个特征,我们将首先在二维空间中绘制这两个变量,其中每个点有两个坐标(这些坐标称为支持向量)。
现在,我们将找到一条线,它在两个不同分类的数据组之间分割数据。这条直线离两组中最近的点的距离都是最远的。
在上面的例子中,将数据划分为两个不同分类组的线是黑色的线,因为两个最近的点离这条线最远。这一直线是我们的分类器。然后,根据测试数据位于直线的哪一侧,这就是我们将新数据分的类。
更多:支持向量机的介绍
把这个算法想象成在n维空间中玩JezzBall。游戏的调整是:
您可以在任何角度绘制线条/平面(而不是像经典游戏中那样只是水平或垂直)
游戏的目的是在不同的房间隔离不同颜色的球。
并且球没有移动。
python 代码
#Import Library
from sklearn import svm
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object
model = svm.svc() # there is various option associated with it, this is simple for classification.
#You can refer link, for more detail. https://scikit-learn.org/stable/modules/svm.html
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
R语言
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)