• 机器学习01


    机器学习

    机器学习库

    scikit-learn,tensorflow

    机器学习框架:
    在这里插入图片描述
    在这里插入图片描述
    什么是机器学习?

    在这里插入图片描述

    数据集的组成

    机器学习的数据:csv文件

    可用数据集:
    在这里插入图片描述

    常用数据集数据的结构:特征值+目标值。
    在这里插入图片描述
    根据特征找目标(进行判断)。
    注:有些数据集可以没有目标值。

    特征工程

    特征工程是什么?
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装Scikit-learn:

    pip3 install Scikit-learn
    
    • 1

    要在python安装目录下找到script,进行安装
    在这里插入图片描述
    输入以下指令判断是否安装成功。

    import sklearn
    
    • 1

    注:安装前需要numpy,pandas等库

    字典特征数据抽取

    也就是转化为数字值,方便计算机识别
    在这里插入图片描述
    流程:
    流程:

    from sklearn.feature_extraction import DictVectorizer
    
    def dictvet():
        dict=DictVectorizer()    #实例化
    
        #传的是列表数据
        data=dict.fit_transform([{"city":"北京","温度":100},{"city":"上海","温度":60},
                                 {"city":"广州","温度":30}])
    
        print(dict.get_feature_names_out()) #得到特征值
        
        print(data)  #默认返回一个sparse矩阵
        #字典类型抽取:把字典中一些类别数据,分别进行转化为特征,使用one-hot编码,数字不需要变
        #如果是数组类型数据,有类别,先转化为字典,在进行抽取
    
    
        return None
    
    
    dictvet()
    
    运行结果:
    ['city=上海' 'city=北京' 'city=广州' '温度']
      (0, 1)	1.0
      (0, 3)	100.0
      (1, 0)	1.0
      (1, 3)	60.0
      (2, 2)	1.0
      (2, 3)	30.0
    
    from sklearn.feature_extraction import DictVectorizer
    
    def dictvet():
        dict=DictVectorizer(sparse=False)  
        data=dict.fit_transform([{"city":"北京","温度":100},{"city":"上海","温度":60},
                                {"city":"广州","温度":30}])
        print(data)
          return None
    
    
    dictvet()
    运行结果:
    [[  0.   1.   0. 100.]
     [  1.   0.   0.  60.]
     [  0.   0.   1.  30.]]
                               
    
    
    • 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
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    在这里插入图片描述

    文本特征数据抽取

    在这里插入图片描述
    和字典特征抽取大同小异。

    from sklearn.feature_extraction.text import CountVectorizer  #导入包
    def countvec():
        cv=CountVectorizer() #实例化
        #传列表类型
        data=cv.fit_transform(["Life is short,i like python","Life is too long,i dislike python"])
    
        print(cv.get_feature_names_out()) #得出统计文章中所有的词,重复的只看做一次,单个字母不统计
        print(data)  #也是返回sparse矩阵,但是CountVectorizer api没有sparse参数,所以只能通过toarray将sparse转为数组形式
        print(data.toarray())
    countvec()
    
    运行结果:
    ['dislike' 'is' 'life' 'like' 'long' 'python' 'short' 'too']
      (0, 2)	1
      (0, 1)	1
      (0, 6)	1
      (0, 3)	1
      (0, 5)	1
      (1, 2)	1
      (1, 1)	1
      (1, 5)	1
      (1, 7)	1
      (1, 4)	1
      (1, 0)	1
    [[0 1 1 1 0 1 1 0]
     [1 1 1 0 1 1 0 1]]
    
    
    • 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

    对于中文文章:
    应该先进行分词操作,使用jieba库
    下载:

    pip3 install jieba
    
    • 1
    from sklearn.feature_extraction.text import CountVectorizer  #导入包
    import jieba
    def hanzivec():
        dv = CountVectorizer()  # 实例化
        data1 = dv.fit_transform([' '.join(list(jieba.cut("人生苦短,及时行乐"))),
                                  ' '.join(list(jieba.cut("不以物喜,不以己悲")))]) #' '.join()转化为字符串
        # 使用jieba进行分词,还需要转化为列表类型,再转化为字符串类型
        print(dv.get_feature_names_out())  # 对于中文不支持这种抽取,因为不能表达出这篇文章的主题,先进行分词,
        # 再进行抽取,英文不需要分词
        print(data1)
        print(data1.toarray())
    
    运行结果:
    ['不以' '不以己' '人生' '及时行乐' '物喜' '苦短']
      (0, 2)	1
      (0, 5)	1
      (0, 3)	1
      (1, 0)	1
      (1, 4)	1
      (1, 1)	1
    [[0 0 1 1 0 1]
     [1 1 0 0 1 0]]
    
    #若得到的列表相差不大,我们就可以进行预测
    
    
    • 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
  • 相关阅读:
    Spring的概念和核心注解
    网络工程师练习题
    构建RAG应用-day05: 如何评估 LLM 应用 评估并优化生成部分 评估并优化检索部分
    【漏洞复现】Weblogic 任意文件上传漏洞(CVE-2018-2894)
    我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
    【Svelte】-(4)If 条件判断语句 / Each 循环语句 / Await 异步处理块
    Mysql基础知识梳理
    39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
    【kafka】使用docker启动kafka
    了解CI/CD流水线
  • 原文地址:https://blog.csdn.net/m0_62548541/article/details/126906492