机器学习------k-近邻预测wine类别

本文深入解析了K近邻算法的基本原理,包括样本间距离的欧式公式计算方法,并讨论了该算法的优缺点。通过Sklearn库在Wine数据集上的应用案例,展示了算法的具体实现过程,包括数据预处理、模型训练与预测结果评估。
摘要由CSDN通过智能技术生成

算法原理

样本之间的距离公式计算,有叫欧式公式。
例如有两个样本: a(a1,a2,a3) b(b1,b2,b3)
则两个样本之间距离公式如下:
在这里插入图片描述
若有多个特征公式同理。
原理:相似样本之间的距离应该是比较近的

优缺点

优点:易于理解 ,简单 不需要估计参数 ,无需训练
缺点:懒惰算法 对测试样本分类时的计算量太大,内存开销大 而且必须指定k值,k值选择不当则分类精度保证不了。
使用场景:小数据场景,几千到几万个样本。

k-近邻预测wine类别

数据集
skl_learn代码

import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import  train_test_split
from sklearn.preprocessing import MinMaxScaler,StandardScaler
def knncls():
    """
    k-近邻对wine数据集分类
    :return: None
    """
    # 读取数据
    names = ["a", "b", "c", "d","e", "f", "g", "h","i", "j", "k","l", "m", "n"]
    data = pd.read_csv("./data/UCI/wine.data",names = names)

    y = data["a"]
    x = data.drop(["a"],axis=1)
    print(x.head())
    print(y.head())
    # 数据处理

    # 进行数据的分割 训练集 和测试集
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.25)

    # 特征工程(标准化)
    std = StandardScaler()
    # 对训练集的特征值进行标准化
    x_train = std.fit_transform(x_train)
    x_test = std.transform(x_test)
    # k-近邻算法流程
    knn = KNeighborsClassifier(n_neighbors=5)

    knn.fit(x_train,y_train)

    y_pridict = knn.predict(x_test)
    print("预测wine类别:",y_pridict)
    print("预测wine准确率:", knn.score(x_test,y_test))

if __name__ == "__main__":
    knncls(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值