当前位置: 首页 > news >正文

机器学习01

机器学习

机器学习库

scikit-learn,tensorflow

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

在这里插入图片描述

数据集的组成

机器学习的数据:csv文件

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

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

特征工程

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

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

pip3 install Scikit-learn

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

import sklearn

注:安装前需要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.]]
                           

在这里插入图片描述

文本特征数据抽取

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

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]]

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

pip3 install jieba
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]]

#若得到的列表相差不大,我们就可以进行预测

相关文章:

  • 类加载器及反射简单笔记
  • MT6701磁编码器使用指南,14Bit单圈绝对值,I2C stm32 HAL库读角度
  • leetcode竞赛:20220918周赛
  • 牛客刷题,python入门基础(11)
  • 循序渐进学Git(可复习)
  • 力扣 6181. 最长的字母序连续子字符串的长度
  • Chapter8:控制系统状态空间分析
  • 基于Java+Springboot+vue体育用品销售商城平台设计和实现
  • uboot源码分析(基于S5PV210)之uboot的硬件驱动部分
  • iptables之SNAT,DNAT原理与DNS分离解析实验
  • 基于Web技术的优秀电影片段赏析与交流系统
  • Android案例手册 - 实现一个华容道拼图游戏
  • 软件设计师笔记-----系统安全分析与设计
  • 「Nature领衔」8月BIOTREE成功助力发表文章17篇,总IF:190+!
  • 高分二号卫星影像下载
  • 【Amaple教程】5. 插件
  • 10个确保微服务与容器安全的最佳实践
  • Android Volley源码解析
  • Angular2开发踩坑系列-生产环境编译
  • canvas 高仿 Apple Watch 表盘
  • Java Agent 学习笔记
  • MYSQL 的 IF 函数
  • python_bomb----数据类型总结
  • spring-boot List转Page
  • storm drpc实例
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 给初学者:JavaScript 中数组操作注意点
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • ------- 计算机网络基础
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 检测对象或数组
  • 简单实现一个textarea自适应高度
  • 每天一个设计模式之命令模式
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端技术周刊 2019-02-11 Serverless
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微服务入门【系列视频课程】
  • 在Unity中实现一个简单的消息管理器
  • zabbix3.2监控linux磁盘IO
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • ${ }的特别功能
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (23)mysql中mysqldump备份数据库
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (强烈推荐)移动端音视频从零到上手(上)
  • (全注解开发)学习Spring-MVC的第三天
  • (四)stm32之通信协议
  • (学习日记)2024.01.09
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)