xxdd123321

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

KNN分类模型

  • 概念:

    • 简单地说,K-近邻算法采用测量不同特征值之间距离方法进行分类(K-Nearest Neighoor, KNN)

  • 1.捕获鸢尾花数据

  • 2.提取样本数据

  • 3.对数据集进行拆分,测试集占总数据的百分之二十

  • 4.观察数据集:看是否需要进行特征工程的处理

  • 5.实例化模型对

  • 6.使用训练集训练模型

  • 7.测试模型:使用测试数据

  • 分类返回:训练集特征数据,测试集特征数据,训练集标签数据,测试集标签数据:

    • x_train, x_test, y_train, y_test = train_test_split(feature, target, test_size=0.2, random_state=2020)

  • 实例化模型对象:knn = KNeighborsClassifier(n_neighbors=3)

  • 使用训练集训练模型:knn = knn.fit(x_train, y_train)

  • 使用训练出的模型:y_pred = knn.predict(x_test),返回标签数据

  • 输入测试特征数据与测试标签数据,使用模型进行模型准确性测试:score = knn.score(x_test, y_test),直接输出准确性小数

  • from sklearn.neighbors import KNeighborsClassifier
    import sklearn.datasets as datasets
    # 样本数据拆分
    from sklearn.model_selection import train_test_split


    # 1.捕获鸢尾花数据
    iris = datasets.load_iris()
    # 2.提取样本数据
    feature = iris['data']
    target = iris['target']
    # 3.对数据集进行拆分,测试集占总数据的百分之二十
    # 训练集特征数据,测试集特征数据,训练集标签数据,测试集标签数据
    x_train, x_test, y_train, y_test = train_test_split(feature, target, test_size=0.2, random_state=2020)
    # 4.观察数据集:看是否需要进行特征工程的处理
    print("训练集特征数据:")
    print(x_train)
    print(x_train.shape)
    print("=======================================================")
    # 5.实例化模型对象
    # 在knn中,k的取值不同会直接导致分类结果的不同,n_nerghboors表示k值,模型的超参数
    # 模型的超参数:如果模型参数有不同的取值,且对不同的取值会对模型的分类或者预测产生直系的影响,则该参数为模型的超参数
    knn = KNeighborsClassifier(n_neighbors=3)
    # 6.使用训练集训练模型
    # X:训练集特征数据
    # Y:训练集标签数据
    # 大写表示特征数据维度必须为二维
    knn = knn.fit(x_train, y_train)
    # 7.测试模型:使用测试数据
    # predict表示使用训练好的模型实现分类或预测
    # 返回模型基于测试数据返回的分类结果
    y_pred = knn.predict(x_test)
    y_true = y_test # 测试集真是分类结果
    print("模型分类结果", y_pred)
    print("真实分类结果", y_true)
    # 输入测试特征与测试标签
    score = knn.score(x_test, y_test)
    print(score)
posted on   xxdd123321  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
 
点击右上角即可分享
微信分享提示