sklearn分类算法实例(SVC、KNN)

文章目录

  • 1. 数据集
  • 2. 实验步骤
    • 2.1 数据预处理
      • *2.1.1 分析*
      • *2.1.2 实践过程*
    • 2.2 划分数据集
    • 2.3 选取模型进行定价分类
      • *2.3.1 分析*
      • *2.3.2 实践*
        • ①SVC模型分类
        • ②KNN模型分类
  • 总结


1. 数据集

数据集为car evaluation:根据汽车的若干属性对汽车进行定价。数据集下载的官方地址为:http://archive.ics.uci.edu/ml/datasets/Car+Evaluation

2. 实验步骤

2.1 数据预处理

2.1.1 分析

数据集展示:
sklearn分类算法实例(SVC、KNN)_第1张图片
可见,car数据集有6个属性:buying、maint、doors、persons、lug_boot、safety
其取值范围如下:
sklearn分类算法实例(SVC、KNN)_第2张图片
其类别class的取值范围如下:
sklearn分类算法实例(SVC、KNN)_第3张图片
因为数据中很多为非数值型取值,因此需要将其数字化。
数据中全为非空取值,因此不需要对空值进行处理。

2.1.2 实践过程

代码如下:

from sklearn import preprocessing
import pandas as pd
data=pd.read_csv('car.csv') 
le=preprocessing.LabelEncoder()
for i in range(len(data.columns)):
    data.iloc[:,i]=le.fit_transform(data.iloc[:,i]) #使用labelEncoder对data的每个属性的取值进行编码

处理后效果如下图所示:
sklearn分类算法实例(SVC、KNN)_第4张图片

2.2 划分数据集

from sklearn.model_selection import train_test_split
X=data.iloc[:,:-1] #取data的属性值
y=data.iloc[:,-1] #取data的class分类
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=2)

2.3 选取模型进行定价分类

2.3.1 分析

sklearn分类算法实例(SVC、KNN)_第5张图片
本数据集的大小为50K,根据上图可以判断分类可采取的模型为:SVC和KNN

2.3.2 实践

①SVC模型分类

from sklearn import svm
import numpy as np
#训练模型
svc_model=svm.SVC()
svc_model.fit(X_train,y_train)
# 使用模型进行预测
y_pred=svc_model.predict(X_test)
# 计算模型的精确度
y_test=np.array(y_test)
svc_acc=np.mean((y_test==y_pred))  #得到的值svc_acc:0.882466281310212

②KNN模型分类

from sklearn.neighbors import KNeighborsClassifier
#训练模型
knn_model=KNeighborsClassifier()
knn_model.fit(X_train,y_train)
# 使用模型进行预测
y_pred_knn=knn_model.predict(X_test)
# 计算模型的精确度
knn_acc=np.mean(y_pred_knn==y_test)  #得到的值knn_acc:0.9017341040462428

总结

文中的分析过程还存在很大的改进空间,欢迎大家对其进行指正,谢谢!
文中参照的博客为:https://blog.csdn.net/qq_27150893/article/details/80169736

你可能感兴趣的:(机器学习,机器学习,算法)