文章目录
- 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 分析
数据集展示:
可见,car数据集有6个属性:buying、maint、doors、persons、lug_boot、safety
其取值范围如下:
其类别class的取值范围如下:
因为数据中很多为非数值型取值,因此需要将其数字化。
数据中全为非空取值,因此不需要对空值进行处理。
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的每个属性的取值进行编码
处理后效果如下图所示:
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 分析
本数据集的大小为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