鸢尾花预测流程

'''
完整的 鸢尾花预测流程
1.导入数据
2.切分数据集---->将数据集分为 训练集和测试集
3.特征预理---->使用归一化 或者  标准化  ---->因为不改变数据的分布情况,所以不会影响结果
4.训练模型
5.评估模型
'''
# 导入 鸢尾花数据
from  sklearn.datasets import load_iris
# 切割数据集的函数 网格搜索的函数
from sklearn.model_selection import train_test_split,GridSearchCV
#特征处理
from  sklearn.preprocessing import  StandardScaler
# 模型函数
from  sklearn.neighbors import  KNeighborsClassifier
# 1.先导入数据
iris = load_iris()

# 2.切割数据集  传入  数据    目标值    训练集比例    随机数种子
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,train_size=0.2,random_state=22)
# 3.特征处理  ---标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
'''
4.模型训练
实例化模型函数
'''
# 实例化模型函数     选择k值范围大小  选 9 范围内的数量最多的种类确定为自己的种类
estimator= KNeighborsClassifier()
# 模型调优  交叉验证 ----将数据集分为 训练集  和测试集  然后轮流训练  训练出最好的模型
#  网格搜索是针对  影响参数选择的部分进行选择 同时有多个  选择出参数最好的
param_grid = {"n_neighbors":[1,3,5,7]}
# 使用GridSearchCV函数进行交叉验证和网格搜索  模型--->要优化的模型   参数---->字典,要传入的参数 cv-----》对折次数
estimator = GridSearchCV(estimator,param_grid=param_grid,cv=5)

# 使用训练集进行训练
estimator.fit(x_train,y_train)


# 5.模型评估
yEndpredict = estimator.predict(x_test)
#1.直接评测 结果
print("预测结果为:\n",yEndpredict )
print("预测结果为:\n",yEndpredict == y_test)


# 2.评测准确率
score = estimator.score(x_test,y_test)
print("该模型的准确率为:",score)
# 3.使用交叉网格优化后的数据
print("得到到最好的模型:",estimator.best_estimator_,"\n")
print("得到的最好的值",estimator.best_score_,"\n")
print("得到的最好的参数",estimator.best_params_,"\n")

你可能感兴趣的:(人工智能,计算机视觉,python)