机器学习算法之KNN算法代码实战及解析

 本次加载的是鸢尾花数据

#从sklearn导入数据集
import numpy as np
from sklearn import datasets
irises=datasets.load_iris()
X_train=irises.data
y_train=irises.target

#导入模块,进行数据训练集和测试数据集的分割
from sklearn import model_selection
#train_test_split返回一个列表,有四个值,分别接受
X_train,X_test,y_train,y_test=model_selection.train_test_split(X_train,y_train,test_size=0.5)

#数据单位归一化
# from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
#生成归一化对象
std_scaler=StandardScaler()
#归一化计算,获取均值std.mean_和方差
std_scaler.fit(X_train)
#进行归一化操作
X_train_std=std_scaler.transform(X_train)
X_test_std=std_scaler.transform(X_test)


para=[
    {
        "weights":["uniform"],
        "n_neighbors":[i for i in range(1,10)]
    },
    {
        "weights":["distance"],
        "p":[i for i in range(1,5)],
        "n_neighbors":[i for i in range(1,10)],
    }
]

#knn计算
from sklearn.neighbors import KNeighborsClassifier
#生成knn算法器
myknn=KNeighborsClassifier()


from sklearn.model_selection import GridSearchCV
#生成一个对象
gs=GridSearchCV(myknn,para)
#训练网格搜索器


gs.fit(X_train_std,y_train)
#训练完成,最有参数,和最高成绩
print(gs.best_params_)
print(gs.best_score_)


#预测数据
print("预测标签:",gs.predict(X_test_std)[10:19])
print("真实标签",y_test[10:19])

#knn算法预测分类
X_predict=np.array([1.31,3.9,1.3,1.9,3.31,6.9,3.3,1.9])
X_predict=X_predict.reshape(-1,4)
X_predict_std=std_scaler.transform(X_predict)
print("网格搜索预测:",gs.predict(X_predict_std))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值