• 2022年信息学部物联网工程学院学生科协机器学习科普


    什么是机器学习

    机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
    它是人工智能核心,是使计算机具有智能的根本途径。
    在这里插入图片描述
    即使这样说来可能仍然很模糊,下面可以通过一张具体的路线图来了解机器学习
    在这里插入图片描述

    回归和分类

    回归(Regression) 就是找到一个函数 function,通过输入特征 x,输出一个数值 Scalar。比较像我们常见的函数拟合。
    在这里插入图片描述
    在这里左侧为线性回归,而右侧为非线性

    分类是事先定义好类别,类别数不变。 分类器需要由人工标注的分类训练语料训练得到,属于有指导学习范畴.
    在这里插入图片描述

    监督学习和无监督学习

    监督学习

    从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入输出,也可以说是特征和目标。训练集中的目标是由人标注的。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。监督学习的目标往往是让计算机去学习我们已经创建好的分类系统(模型)。

    无监督学习

    输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)。
    通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。

    机器学习方向

    机器学习主要包括计算机视觉,语音识别,自然语言处理三大方面。当然还带有一些其他的小方面。
    我们可以具体通过一张图片来了解
    在这里插入图片描述

    计算机视觉方向

    在计算机视觉方向有四大任务:

    图像分类

    给定一系列标记为单标签的图像,希望成功预测出未经标记的新的数据的标签。

    在这里插入图片描述

    目标检测

    object detection的任务是检测到图像中的目标并分类出目标种类。

    在这里插入图片描述

    语义分割

    计算机视觉的核心是分割过程,它将整个图像分成像素分组,然后可以对其进行标记和分类。特别地,语义分割试图在语义上理解图像中每个像素的角色(例如,它是汽车,摩托车还是其他类型的类)。例如,在上图中,除了识别人,道路,汽车,树木等之外,我们还必须划定每个物体的边界。因此,与分类不同,我们需要从我们的模型进行像素级的预测。

    在这里插入图片描述

    实例分割

    实例分段还将不同的实例分类,例如用5种不同颜色标记5辆汽车。我们看到多个重叠物体和不同背景的复杂景点,我们不仅分类这些不同的物体,而且还确定它们的边界,差异和彼此之间的关系!

    在这里插入图片描述

    自然语言处理方向

    一些应用有文本分类、AI写作、AI翻译等等,这里不再提供其他内容。

    KNN算法教学

    KNN理论教学

    K最近邻(K-Nearest Neighbor)算法核心思想是如果一个样本在特征空间中的k个最临近的样本中的大多数属于某一个类别,则该样本也属于这个类别。
    从图来理解就是:
    在这里插入图片描述
    在这里插入图片描述

    鸢尾花(iris)数据集

    Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。
    数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。
    可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
    在这里插入图片描述

    通过KNN模型实现对鸢尾花数据集的分类处理

    from sklearn import datasets#sklearn自带的数据库
    from sklearn.model_selection import train_test_split#分离traindata和testdata的模块*
    from sklearn.neighbors import KNeighborsClassifier#KNN算法,详情百度*
    
    iris = datasets.load_iris()
    iris_X = iris.data
    iris_Y = iris.target
    X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_Y, test_size=0.3)
    
    #这里把所有的data分为要用于学习的data和要用于测试的data,好处是他们不会互相影响
    #需要分开的数据为iris_X和iris_y,其中测试的比例占30%
    
    print('iris_Y :', iris_Y)# 这里是排列好了的数据
    print('y_train :', y_train)# 而这里是打乱了的数据,更利于分析
    print('\n')
    
    knn = KNeighborsClassifier()
    knn.fit(X_train, y_train)
    
    print('predict : ', knn.predict(X_test))
    print('real data : ', y_test) 
    print('score : ', knn.score(X_test, y_test))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    输出结果

    iris_Y : [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
     1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
     2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     2 2]
    y_train : [0 2 0 0 0 2 1 1 2 1 2 1 0 2 2 0 0 1 2 2 1 1 0 0 0 0 2 2 2 0 0 0 1 0 0 0 0
     1 1 1 2 2 0 1 1 2 2 0 2 2 0 1 2 0 1 1 0 2 1 0 2 1 1 2 2 1 2 2 1 0 1 0 0 2
     1 0 1 0 0 2 2 2 2 1 1 1 1 0 2 2 1 2 1 0 0 2 0 2 2 2 0 0 2 2 1]
    
    
    predict :  [0 2 1 1 0 1 1 2 0 2 2 2 1 1 0 0 2 1 1 2 2 1 2 0 0 0 1 1 1 1 0 0 2 1 2 2 1
     0 0 0 0 1 1 2 1]
    real data :  [0 2 1 1 0 1 1 2 0 2 2 2 1 1 0 0 2 1 1 2 2 1 2 0 0 0 1 1 1 1 0 0 2 1 1 2 1
     0 0 0 0 1 1 2 1]
    score :  0.9777777777777777
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    什么是腾讯云web应用防火墙?有哪些优势以及适用于什么场景?
    JAVA计算机毕业设计家居体验平台的设计与实现Mybatis+系统+数据库+调试部署
    Java发展简史
    idea2020.1 安装 kubectl win10
    【数据结构与算法学习】线性表(顺序表、单链表、双向链表、循环链表)
    Pjax 下动态加载插件方案
    Anaconda安装Pytorch+PyTorch-Geometric,并将虚拟环境添加到jupyter notebook
    『 CSS实战』CSS3 实现一些好玩的效果(2)
    Python实用技术二:数据分析和可视化(2)
    数据科学中的数据库简介
  • 原文地址:https://blog.csdn.net/NOTFOUND_Liu/article/details/127973222