zoukankan      html  css  js  c++  java
  • 《机器学习实战》程序清单2-5 约会网站预测函数

    以下代码,在Sublime中跑不起来,似乎Sublime无法交互输入文字,在IDLE或控制台中可以输入。

    测试结果其实也挺搞笑的,这姑娘的喜好唯一取决于每周吃多少冰淇淋,前两项输入0,第三项输入236,就是small does,输入237,就是large doses。

    所以,一个不玩游戏,不是飞行常客,一周吃237升冰淇淋的人,是她最可能喜欢的人。

    这是因为离[0 0 237]这个点最近的k(此处假设k=3)个点分别是:

    14402 10.482619 1.694972 smallDoses

    35283 6.091587 1.694641 largeDoses

    56557 11.746200 1.695517 largeDoses

    最终的统计结果是:{'smallDoses': 1, ' largeDoses': 2}

     largeDoses的有俩,所以结果是 largeDoses,非常喜欢

    如果把K放大到1000,统计结果是:{'smallDoses': 331, 'largeDoses': 327, 'didntLike': 342}

    结论是:不喜欢。

    结果大相径庭

    从这个统计结果来看,这个姑娘约见的人分布得还挺平均的。

    其它值请各位自行测试。

    def classifyPerson():
        resultList = ['not at all', 'in small doses', 'in large doses']
        percentTats = float(input("percentage of time spent playing video games?"))
        ffMiles = float(input("frequent flier miles earned per year?"))
        iceCream = float(input("liters of ice cream consumed per year?"))
    
        datingDataMat, datingLabels = file2matrix('datingTestSet3.txt')
        normMat, ranges, minVals = autoNorm(datingDataMat)
        inArr = array([ffMiles, percentTats, iceCream])
        classifierResult = classify0((inArr - minVals)/ranges, normMat, datingLabels, 3)
        print(classifierResult)
    
        print("You will probably like this person: ", resultList[int(classifierResult) - 1])
  • 相关阅读:
    FreeRTOS学习目录
    ESP32随笔汇总
    FPGA开发随笔汇总
    manim在windows系统下安装
    16、频率域滤波
    15、频率域滤波基础——傅里叶变换计算及应用基础
    14、OpenCV实现图像的空间滤波——图像锐化及边缘检测
    13、OpenCV实现图像的空间滤波——图像平滑
    12、OpenCV实现图像的直方图处理
    生成预加载镜像以及设备树
  • 原文地址:https://www.cnblogs.com/Sabre/p/8378197.html
Copyright © 2011-2022 走看看