from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
def knn_iris():
"""
用knn算法对鸢尾花进行比较
:return:
"""
#1.)获取数据
iris = load_iris()
# 2.)数据集划分
x_train,x_test,y_train,y_test =train_test_split(iris.data,iris.target,random_state=9)
# 3.)特征工程(标志化)
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
#不能再用fit计算 因为再计算测试集的平均值和方差,那么训练集和测试集之间没有练习
#所以用transform进行转换 按训练集的平均值和方差进行转化 使测试集和训练集之间有关系
x_test = transfer.transform(x_test)
# 4.)KNN预估器流程
estimator=KNeighborsClassifier(n_neighbors=3)
estimator.fit(x_train,y_train)
# 5.)模型评估
# 1.)直接比较真实值(测试值)和预测值
y_predict = estimator.predict(x_test)
print("y_predict\n",y_predict)
print("直接比较真实值和预测值\n",y_test == y_predict)
# 2.)计算准确率
accuracy = estimator.score(x_test, y_test)
print("准确率:\n",accuracy)
return None
if __name__ == "__main__":
knn_iris()
鸢尾花knn算法(sklearn)训练和预测
最新推荐文章于 2024-10-12 23:39:19 发布