ML 100day servenday(SVM )

SVM(Support Vector Machines)支持向量机
在这里插入图片描述
一、什么是SVM?他是个有监督的机器学习算法,和KNN一样可用于分类和回归分析,最主要是用在分类问题中。在这个算法中,更具特征值,构建n维空间(其中n即是特征的数量),吧每个数据投影到此空间内。
二、数据如何分类?通过查找一个超平面,把数据区分为两类。换句话说,算法输出一个最佳超平面,用于数据分类
三、什么是最佳超平面
对SVM来说,它指的是距离两类数据最远的一个超平面。即是,此超平面到最近元素的距离最远

代码实现:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集
df = pd.read_csv(‘C:\Users\Administrator\Desktop\ml 100day\Social_Network_Ads.csv’)
df.head()
#数据无异常值
#划分XY
X = df.iloc[:,[2,3]].values
Y = df.iloc[:,4].values
#测试集训练集拆封、
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.25,random_state=0)
#数据归一化(特征缩放)
from sklearn.preprocessing import StandardScaler
#创建对象
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test) #此处必须是transform
#创建SVN对象

from sklearn.svm import SVC
classifier = SVC(kernel=‘linear’,random_state=0)
classifier.fit(X_train,Y_train)

#predict result
y_pred = classifier.predict(X_test)

#使用混淆矩阵完成
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_test,y_pred)

结果:
array([[57,  1],
	  [ 6, 16]], dtype=int64)

**精确率:57/(57+6)= 0.904
准确率: 57/(57+1)=0.982
召回率: (57+16)/(57+16+1+6)=0.912**
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值