如何选择丹徒网站建设,软件开发入门,小说网站seo排名怎么做,免备案php网站空间基于鸢尾花的不同分类器的效果比对:step1#xff1a;准备数据#xff1b;提取数据的特征向量X,Y将Y数据采用LabelEncoder转化为数值型数据;step2:将提取的特征向量X,Y进行拆分(训练集与测试集)step3:构建不同分类器并设置参数#xff0c;例如#xff1a;…基于鸢尾花的不同分类器的效果比对:step1准备数据提取数据的特征向量X,Y将Y数据采用LabelEncoder转化为数值型数据;step2:将提取的特征向量X,Y进行拆分(训练集与测试集)step3:构建不同分类器并设置参数例如KNN,RF,SVM,dengstep4:循环遍历model列表设置时间戳每循环一个模型进行模型训练模型验证或测试打分并将结果进行记录step5plot(画图)import time
import warnings
import sysimport matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.pylab as mpl
from sklearn.preprocessing import LabelEncoder       ###数据清洗
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC, SVR
from sklearn.neighbors import KNeighborsClassifier   ###KNN
from sklearn.ensemble import RandomForestClassifier  ###随机森林
from sklearn.linear_model import LogisticRegression  ###逻辑回归器# 溢出警告设置为0
warnings.filterwarnings(ignore)# 防止中文乱码
mpl.rcParams[font.sans-serif]  [usimHei]
mpl.rcParams[axes.unicode_minus]  False# 数据路径
path  iris.data
names  [A, B, C, D, cls]
# 创建读取数据对象
data  pd.read_csv(filepath_or_bufferpath, headerNone, namesnames)
print(data)
# print(data[cls].values)
# sys.exit()
# 读取特征向量X, Y
X  data.iloc[:, :2]
# Y  data.iloc[:, :-1]
Y  data[cls]# 将字符型数据Y转成数值型  数据清洗或调用LabelEncoder
class_label  {Iris-setosa: 0, Iris-versicolor: 1, Iris-virginica: 2}
# 对目标属性做一个类别的转换将字符串的数据转换为从0开始的int值
### 方式一: LabelEncoder方法
# label_encoder  LabelEncoder()
# Y  label_encoder.fit_transform(Y)
# print(Y)
### 方式二采用map一一印射关系匿名函数
data[cls]  list(map(lambda cls: class_label[cls], data[cls].values))
print(data[cls].values)# 数据拆分训练集和测试集
x_train, x_test, y_train, y_test  train_test_split(X, Y, test_size0.2, random_state10)# 构建不同分类器
svc  SVC(C0.2, kernelrbf, decision_function_shapeovr)
knn  KNeighborsClassifier(n_neighbors5)
log  LogisticRegression()
rand  RandomForestClassifier(n_estimators150, max_depth3)
models  np.array([svc, knn, log, rand])# 创建新列表记录数据
T  []
TRAIN_SORCE  []
TEST_SORCE  []# 遍历不同分类器进行训练、打分和时间花销并记录方便后续画图
for i in models:N  time.clock()i.fit(x_train, y_train)M  time.clock()T.append(M-N)TRAIN_SORCE.append(i.score(x_train, y_train))TEST_SORCE.append(i.score(x_test, y_test))# 画图
plt.figure(num1)
plt.plot([svc01, knn02, log03, rand04], TRAIN_SORCE, r-, linewidth3, labelTRAIN_SORCE)
plt.plot([svc01, knn02, log03, rand04], TEST_SORCE, b-o, linewidth3, labelTEST_SORCE)
# 设置Y轴尺度
plt.ylim(0.5, 1.2)plt.figure(num2)
plt.plot([svc01, knn02, log03, rand04], T, g-o, linewidth3, labeltime)
plt.show()E:\myprogram\anaconda\envs\python3.6\python.exe E:/XXX/L-SVM/_differ-classifiies.pyA    B    C    D             cls
0    5.1  3.5  1.4  0.2     Iris-setosa
1    4.9  3.0  1.4  0.2     Iris-setosa
2    4.7  3.2  1.3  0.2     Iris-setosa
3    4.6  3.1  1.5  0.2     Iris-setosa
4    5.0  3.6  1.4  0.2     Iris-setosa
..   ...  ...  ...  ...             ...
145  6.7  3.0  5.2  2.3  Iris-virginica
146  6.3  2.5  5.0  1.9  Iris-virginica
147  6.5  3.0  5.2  2.0  Iris-virginica
148  6.2  3.4  5.4  2.3  Iris-virginica
149  5.9  3.0  5.1  1.8  Iris-virginica[150 rows x 5 columns]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]Process finished with exit code 0