zoukankan      html  css  js  c++  java
  • scikitlearn库中调用k-近邻算法的操作步骤

    1、k近邻算法可以说是唯一一个没有训练过程的机器学习算法,它含有训练基础数据集,但是是一种没有模型的算法,为了将其和其他算法进行统一,我们把它的训练数据集当做它的模型本身。
    2、在scikitlearn中调用KNN算法的操作步骤如下(利用实际例子举例如下):
    #1导入相应的数据可视化模块
    import numpy as np
    import matplotlib.pyplot as plt
    #2输入训练的数据集x_train、y_train
    raw_data_X=[[3.393533211,2.331273381],
    [3.110073483,1.781539638],
    [1.343808831,3.368360954],
    [3.582294042,4.679179110],
    [2.280362439,2.866990263],
    [7.423436942,4.696522875],
    [5.745051997,3.533989803],
    [9.172168622,2.511101045],
    [7.792783481,3.424088941],
    [7.939820817,0.791637231]]
    raw_data_Y=[0,0,0,0,0,1,1,1,1,1]
    x_train=np.array(raw_data_X)
    y_train=np.array(raw_data_Y)
    x=np.array([8.093607318,3.365731514])
    #特别注意:scilearn模块里面验证数据都将默认为二维数据,如果不是,则需要使用.reshape(1,-1)函数对其进行转换
    #3从scikitlearn库中调用相应的机器学习算法
    from sklearn.neighbors import KNeighborsClassifier #调用算法库
    KNN_classifier=KNeighborsClassifier(n_neighbors=6) #定义新的算法
    KNN_classifier.fit(x_train,y_train) #基础数据训练模型
    #4导入测试的数据集test_data和test_target
    test_data1=[[3.93533211,2.33127381],
    [3.10073483,1.78159638],
    [1.34808831,3.36830954],
    [3.58294042,4.67919110],
    [2.28032439,2.86690263],
    [7.42343942,4.69652875],
    [5.74505997,3.53399803],
    [9.17216622,2.51101045],
    [7.79278481,3.42488941],
    [7.93982087,0.79637231]]
    test_data=np.array(test_data1)
    test_target=[0,0,0,0,1,1,0,0,0,0]
    x=x.reshape(1,-1)
    print(KNN_classifier.predict(x))
    y_pred=KNN_classifier.predict(test_data) #对测试数据进行预测
    #5对于算法的准确度进行输出和评估(准确度和混淆矩阵)
    from sklearn import metrics #引入机器学习的验证模块
    print(metrics.accuracy_score(y_true=test_target,y_pred=y_pred)) #输出整体预测结果的准确率,其中第三个参数normalize=False表示输出结果预测正确的个数
    print(metrics.confusion_matrix(y_true=test_target,y_pred=y_pred)) #输出混淆矩阵,如果为对角阵,则表示预测结果是正确的,准确度越大

    3、从scikitlearn库中调用相应的机器学习算法的步骤如下:
    (1)从scikitlearn库中调用相应的机器学习算法模块;
    (2)输入相应的算法参数定义一个新的算法;
    (3)输入基础训练数据集进行训练;
    (4)输入测试数据集对其结果进行预测;
    (5)将预测结果与真实结果进行对比,输出其算法的准确率(或者混淆矩阵)
    4、对于机器学习算法的准确度评价主要有以下几种方式:
    (1)利用scikitlearn中的accuracy函数:
    from sklearn import metrics #引入机器学习的验证模块
    print(metrics.accuracy_score(y_true=y_test,y_pred=y_pred)) #输出整体预测结果的准确率,其中第三个参数normalize=False表示输出结果预测正确的个数
    print(metrics.confusion_matrix(y_true=y_test,y_pred=y_pred)) #输出混淆矩阵,如果为对角阵,则表示预测结果是正确的,准确度越大
    (2)直接利用机器学习算法中的.score(X,y)函数输出算法的准确度
    其中X表示数据的测试集(x_test),y代表真实目标值(y_test)

  • 相关阅读:
    HTTP的三次握手
    HTTP协议的发展历史
    二分图 (最大匹配 + 最小点覆盖 + 最少路径覆盖 + 最大独立集)
    昂贵的聘礼 POJ
    Cow Contest POJ 3660 (Floyed ) (最短路专题)
    B-number HDU
    You Are the One HDU
    0 or 1 HDU
    Trie树模板 + 例题
    The Shortest Path in Nya Graph HDU
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/11294607.html
Copyright © 2011-2022 走看看