zoukankan      html  css  js  c++  java
  • 吴裕雄 python 机器学习-KNN(2)

    import matplotlib
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Rectangle
    
    
    n = 1000 #number of points to create
    xcord = np.zeros((n))
    ycord = np.zeros((n))
    markers =[]
    colors =[]
    fw = open('D:\LearningResource\machinelearninginaction\Ch02\EXTRAS\testSet.txt','w')
    
    for i in range(n):
        [r0,r1] = np.random.standard_normal(2)
        myClass = np.random.uniform(0,1)
        if (myClass <= 0.16):
            fFlyer = np.random.uniform(22000, 60000)
            tats = 3 + 1.6*r1
            markers.append(20)
            colors.append(2.1)
            classLabel = 1 #'didntLike'
            print(("%d, %f, class1") % (fFlyer, tats))
        elif ((myClass > 0.16) and (myClass <= 0.33)):
            fFlyer = 6000*r0 + 70000
            tats = 10 + 3*r1 + 2*r0
            markers.append(20)
            colors.append(1.1)
            classLabel = 1 #'didntLike'
            print(("%d, %f, class1") % (fFlyer, tats))
        elif ((myClass > 0.33) and (myClass <= 0.66)):
            fFlyer = 5000*r0 + 10000
            tats = 3 + 2.8*r1
            markers.append(30)
            colors.append(1.1)
            classLabel = 2 #'smallDoses'
            print(("%d, %f, class2") % (fFlyer, tats))
        else:
            fFlyer = 10000*r0 + 35000
            tats = 10 + 2.0*r1
            markers.append(50)
            colors.append(0.1)
            classLabel = 3 #'largeDoses'
            print(("%d, %f, class3") % (fFlyer, tats))
        if (tats < 0): 
            tats =0
        if (fFlyer < 0): 
            fFlyer =0
        xcord[i] = fFlyer
        ycord[i]=tats
        fw.write("%d	%f	%f	%d
    " % (fFlyer, tats, np.random.uniform(0.0, 1.7), classLabel))
        
    fw.close()
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(xcord,ycord, c=colors, s=markers)
    type1 = ax.scatter([-10], [-10], s=20, c='red')
    type2 = ax.scatter([-10], [-15], s=30, c='green')
    type3 = ax.scatter([-10], [-20], s=50, c='blue')
    ax.legend([type1, type2, type3], ["Class 1", "Class 2", "Class 3"], loc=2)
    ax.axis([-5000,100000,-2,25])
    plt.xlabel('Frequent Flyier Miles Earned Per Year')
    plt.ylabel('Percentage of Body Covered By Tatoos')
    plt.show()

    ...................................................

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib.patches import Rectangle
    
    
    n = 1000 #number of points to create
    xcord1 = []; ycord1 = []
    xcord2 = []; ycord2 = []
    xcord3 = []; ycord3 = []
    markers =[]
    colors =[]
    fw = open('D:\LearningResource\machinelearninginaction\Ch02\EXTRAS\testSet.txt','w')
    
    for i in range(n):
        [r0,r1] = np.random.standard_normal(2)
        myClass = np.random.uniform(0,1)
        if (myClass <= 0.16):
            fFlyer = np.random.uniform(22000, 60000)
            tats = 3 + 1.6*r1
            markers.append(20)
            colors.append(2.1)
            classLabel = 1 #'didntLike'
            xcord1.append(fFlyer)
            ycord1.append(tats)
        elif ((myClass > 0.16) and (myClass <= 0.33)):
            fFlyer = 6000*r0 + 70000
            tats = 10 + 3*r1 + 2*r0
            markers.append(20)
            colors.append(1.1)
            classLabel = 1 #'didntLike'
            if (tats < 0):
                tats =0
            if (fFlyer < 0): 
                fFlyer =0
            xcord1.append(fFlyer)
            ycord1.append(tats)
        elif ((myClass > 0.33) and (myClass <= 0.66)):
            fFlyer = 5000*r0 + 10000
            tats = 3 + 2.8*r1
            markers.append(30)
            colors.append(1.1)
            classLabel = 2 #'smallDoses'
            if (tats < 0): 
                tats =0
            if (fFlyer < 0): 
                fFlyer =0
            xcord2.append(fFlyer)
            ycord2.append(tats)
        else:
            fFlyer = 10000*r0 + 35000
            tats = 10 + 2.0*r1
            markers.append(50)
            colors.append(0.1)
            classLabel = 3 #'largeDoses'
            if (tats < 0): tats =0
            if (fFlyer < 0): fFlyer =0
            xcord3.append(fFlyer)
            ycord3.append(tats)
            fw.write("%d	%f	%f	%d
    " % (fFlyer, tats, np.random.uniform(0.0, 1.7), classLabel)) 
            
    fw.close()
    fig = plt.figure()
    ax = fig.add_subplot(111)
    # ax.scatter(xcord,ycord, c=colors, s=markers)
    type1 = ax.scatter(xcord1, ycord1, s=20, c='red')
    type2 = ax.scatter(xcord2, ycord2, s=30, c='green')
    type3 = ax.scatter(xcord3, ycord3, s=50, c='blue')
    ax.legend([type1, type2, type3], ["Did Not Like", "Liked in Small Doses", "Liked in Large Doses"], loc=2)
    ax.axis([-5000,100000,-2,25])
    plt.xlabel('Frequent Flyier Miles Earned Per Year')
    plt.ylabel('Percentage of Time Spent Playing Video Games')
    plt.show()

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    
    def file2matrix(filename):
        fr = open(filename)
        returnMat = []
        classLabelVector = []                       #prepare labels return   
        for line in fr.readlines():
            line = line.strip()
            listFromLine = line.split('	')
            returnMat.append([float(listFromLine[0]),float(listFromLine[1]),float(listFromLine[2])])
            classLabelVector.append(int(listFromLine[-1]))
        return np.array(returnMat),np.array(classLabelVector)
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    datingDataMat,datingLabels = file2matrix('D:\LearningResource\machinelearninginaction\Ch02\datingTestSet2.txt')
    #ax.scatter(datingDataMat[:,1], datingDataMat[:,2])
    ax.scatter(datingDataMat[:,1], datingDataMat[:,2], 15.0*np.array(datingLabels), 15.0*np.array(datingLabels))
    ax.axis([-2,25,-0.2,2.0])
    plt.xlabel('Percentage of Time Spent Playing Video Games')
    plt.ylabel('Liters of Ice Cream Consumed Per Week')
    plt.show()

  • 相关阅读:
    class(类)和构造函数(原型对象)
    es6中export和export default的区别
    vue混入 (mixin)的使用
    ES6(Module模块化)
    vue-cli3构建和发布 实现分环境打包步骤(给不同的环境配置相对应的打包命令)
    Vue中使用Echarts 脱坑
    Nginx配置详解
    VUE面包屑组件
    更改 pip 默认下载源(pip 配置文件)
    常见免费API接口
  • 原文地址:https://www.cnblogs.com/tszr/p/10142657.html
Copyright © 2011-2022 走看看