# -*- coding: utf-8 -*-
"""
Created on Tue Mar 9 10:57:18 2021
@author: lenovo
"""
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
#读取csv 数据
df = pd.read_csv("samples.txt",header=None,names=["x","y","label"])
print(df.head())
#分片选择样本实例,标记
X,y = df.iloc[:,:-1].values,df["label"].values
X0 = X[y==0]
X1 = X[y==1]
#画出样本点
#设置显示中文
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
#训练SVM分类模型
from sklearn.svm import SVC
#使用不同的核函数,实例化模型对象
linear_model = SVC(C=1.0,kernel="linear")
poly_model = SVC(C=1.0,kernel="poly",degree=3)
rbf1_model = SVC(C=1.0,kernel="rbf",gamma=5)
rbf2_model = SVC(C=1.0,kernel="rbf",gamma=0.1)
models = [linear_model,poly_model,rbf1_model,rbf2_model]
titles = ["线性核","三阶多项式核","高斯核$\gamma = 5$","高斯核$\gamma = 0.1$"]
#生成网格点
x1_min,x2_min = X.min(axis=0)
x1_max,x2_max =X.max(axis=0)
x1_range = np.linspace(x1_min-1,x1_max+1,100)
x2_range = np.linspace(x2_min-1,x2_max+1,100)
#张成网格
xx1,xx2 = np.meshgrid(x1_range,x2_range)
#组织成样本点
xx = np.c_[xx1.ravel(),xx2.ravel()]
#遍历模型,训练,画出决策线
plt.figure("decision line",facecolor="snow",figsize=(10,8))
for idx,model in enumerate(models):
model.fit(X,y)
#预测网格点
y_pred = model.predict(xx)
#画子图
plt.subplot(2,2,idx+1)
plt.subplots_adjust(left=0.1,right=1,top=1,bottom=0.1,wspace=0.2,hspace=0.3)
#画点
plt.scatter(X0[:,0],X0[:,1],s=80,c="r",edgecolors=None,marker="s",label="0类")
plt.scatter(X1[:,0],X1[:,1],s=80,c="b",edgecolors=None,marker="^",label="1类")
plt.title(titles[idx],fontsize=20)
plt.xlabel("x 轴",fontsize=20)
plt.ylabel("y 轴",fontsize=20)
plt.grid(linestyle="-")
plt.legend(loc="upper right",frameon=True,framealpha=0.3)
#画决策线
plt.contour(xx1,xx2,y_pred.reshape(xx1.shape),cmap="cool")
plt.show()
#可以更改 C gamma值观察 决策线的变化
人工智能领域机器学习算法支持向量机python代码
需积分: 1 73 浏览量
2023-04-08
09:20:26
上传
评论
收藏 1KB ZIP 举报
laufing
- 粉丝: 2998
- 资源: 31
最新资源
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
- 基于matlab实现视频监控中车型识别代码,自己写的,希望和大家多多交流.rar
- springcodespringcodespringcodespringcode
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈