python使用SVC算法评估汽车价值

关注公众号“轻松学编程”了解更多。

这是一个关于汽车测评的数据集,

类别变量为汽车的测评:

(unacc,ACC,good,vgood)

​ 分别代表(不可接受,可接受,好,非常好)

而6个属性变量分别为

买入价,维护费,车门数,可容纳人数,后备箱大小,安全性。

值得一提的是6个属性变量全部是有序类别变量,

比如「可容纳人数」值可为「2,4,more」,

「安全性」值可为「low, med, high」

price、maint、doors、persons、lug_boot、safty、recommend

导包

import numpy as np
import pandas as pd
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from pandas import Series,DataFrame

读取数据

car = pd.read_csv('./data/cars.txt',header=None)
car.head()

#修改列索引
car.columns = ['price','maint','doors','persons','lug_boot',
'safty','recommend']
#特征数据
X = car.iloc[:,:6]
#目标数据
y = car.recommend

字符串转数字

#'price'这一列的类别
X['price'].unique()

columns = ['price','maint','doors','persons','lug_boot','safty']

for col in columns:
#获取每一列中字符串的类别(不重复),返回数组A
u = X[col].unique() #返回item在的数组A中的下标
def convert(item):
index = np.argwhere( u == item)[0,0]
return index #把字符串转换成数字
X[col] = X[col].map(convert)
X.tail()

拆分数据集

X_train,X_test,y_train,y_test = train_test_split(X,y,
test_size=150)

训练模型并预测评分

#使用支持向量机模型,内核函数使用rbf
svc = SVC(kernel='rbf')
#训练模型
svc.fit(X_train,y_train)
#预测
y_ = svc.predict(X_test)
#评分
svc.score(X_test,y_test)

使用交叉表对比预测结果

#交叉表
pd.crosstab(index = y_,
columns = y_test,
rownames=['predict'],
colnames=['True'],
margins=True #统计
)

从交叉表可看出:

acc预测正确32个,预测错误5个,有4个预测成uncc,1个预测成vgood。

good和unacc都预测正确。

vgood预测正确7个,预测错1个。

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

公众号

关注我,我们一起成长~~

最新文章

  1. TODO:macOS编译PHP7.1
  2. thinkphp模型
  3. Windows Server 2008 任务计划无法自动运行的解决办法
  4. Y Combinator
  5. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)
  6. 20145320《Java程序设计》第三次实验报告
  7. 赋值运算符、拷贝初始化和this指针
  8. HDU1796+容斥原理
  9. win7桌面图标小盾牌怎么去掉(2种方法)
  10. load-store/register-memory/register-plus-memory比较
  11. VB.NET的反射机制
  12. Python[小甲鱼-002用Python设计第一个游戏]
  13. 【English】20190326
  14. jxl应用事例
  15. sqlalchemy数据库分层操作
  16. SVN——Couldn't perform atomic initialization
  17. Tomcat & Servlet
  18. 解决问题的方法=>现象-->原因-->方案-->方案的优缺点
  19. VS2013 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
  20. [Algorithm] Maximum Flow

热门文章

  1. 深入了解Redis(6)-持久化原理
  2. mysql-3-orderby
  3. TCP/IP 寻址
  4. 【Linux编译环境的搭建】Linux都没有,怎么学Linux编程?
  5. 不出意外,排名第一的还是它,程序员为什么都喜欢用Chrome?
  6. docker系统化学习图文教程
  7. selenium 浏览器最大化
  8. 数组列表(ArrayList)
  9. 修改apt,pip,npm为国内镜像源
  10. 链接WPA2-企业WIFI时出现无法链接到该网络,可以链接个人WIFI时的问题和解决方案