numpy

构造numpy数组

import numpy as np
'''linspace()方法:在某个范围内取等差数列参数:start:起始元素值stop:终止元素值num:元素个数
'''
a = np.linspace(0,100,num=101)
print(a)

matplotlib(python中的一个图形化库)

安装:pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/

我们使用的是matplotlib下的pyplot模块:
        pyplot:
            plot():绘制折线图
            hist():绘制直方图
                x:需要显示的数据
                bins:直方的个数/桶数

scatter():散点图

可以设置线的特点:
            ls:线条风格
                '-', '--', '-.', ':',
            lw:线条宽度
            color:
            label:

例子:

            import numpy as npimport matplotlib.pyplot as plta = np.linspace(-6,6,100)b = np.sin(a)c = np.cos(a)'''title:设置图形的标题'''plt.title("sin(x)/cos(x)")'''plot:绘制折线图label:被绘制线的标签,一般情况下没有,显示图例时会用lw:线条宽度ls:线条风格'-','--','-.',':'color:线条颜色:"#r(0-FF)gb"'''plt.plot(a,b,label="sin(x)",lw=3,ls="--",color="#ff8900")plt.plot(a,c,label="cos(x)",lw=2,ls="-.")'''grid():显示背景网格lwlscolor同 plot'''plt.grid(lw = 1, ls="-",color="#006678")'''xlabel:显示横坐标的标签'''plt.xlabel("X-aix")'''ylabel:显示纵坐标的标签'''plt.ylabel("Y-aix")'''ylim(下限value,上限value):设置y轴数值显示范围'''plt.ylim(0,1)'''xlim(下限value,上限value):设置x轴数值显示范围'''plt.xlim(-2,4)#显示图例plt.legend()#显示图形,如果没有show,啥都显示不出来plt.show()

如何构建一个机器学习问题

->分析问题是不是适合机器学习
        ->文件复杂,一般就适合
        ->如果是优化类问题
            ->不能通过数学推到快速得到结果的问题

->是不是需要数据集,如何构建数据集
        ->数据集中要收集哪些数据
        ->数据集带不带标签

->根据问题的描述对问题进行简单的分类,简单去选择和设计机器学习算法
        ->机器学习问题的分类
        问题类型             描述                                                      例子
        分类问题             从n个标签中选一个                               通用物体识别
        回归问题             预测一个数值                                        点击率预测
        聚类问题             把类似的样例聚为一类(输出的是类型)        文档聚类/物品聚类(无监督学习)
        并联规则学习问题         从数据中寻找推断关联和模型             如果你买过汉堡,你可能再去买汉堡(无监督学习)
       结构化输出           建立一个复杂的输出                             翻译
       排名问题             基于一定状态/数量级中排名/定位         快速索引/排序

->要想好如何去验证模型的准确型
        要设计计算损失率的函数,即要设计好如何求损失率的极值

->确定模型的使用方法
        如何让人学会识别猫

这是一个监督学习。
                特征值                                                 标签

长度
                尾巴和体长的比例
                耳朵
                叫声         ------------------------------------->    猫
                脸型                  映射关系
                嘴巴
                鼻子

从特征值到标签之间的映射关系我们称之为模型

原始数据----------->特征值
                     提取的过程

我们把提取特征值的过程称之为特征工程。

一般情况下模型的使用:
            将原始数据进行特征提取,将提取的特征给模型,得到预测/分类的结果

比较常见的是,特征提取放在模型中。

数据集的收集

如何写一个程序识别猫和猞猁?
        体长(cm)     尾巴的长度/体长(0~1)         标签

收集多少条数据?(数据集的大小)
        100条
        业务不同,收集的数据集大小不同。

没有标准说,解决哪类问题,必须使用多少条记录,但是可以参考别人处理类似问题的数据集大小。

如何提供一个高质量的数据集?
        ->数据的多样性(要满足正态分布)
        ->不能有关键数据的丢失(数据的完整性要好)
        ->特殊的异常数据不能有
        ->错误的标签不能有

如何获取标签?
        ->人工贴
            优势:
                1.贴标签的人对数据很熟悉,对数据的特征很熟悉
                2.贴完标签后很容易估计出最优算法
                3.可以解决无法从其他数据中生成标签的问题

缺点:
                1.效率低下
                2.容易出错
        
        ->计算机贴
            优势:
                1.效率高
                2.不容易出错

缺点:
                1.人对数据不熟悉
                2.无法解决原始数据无法生成标签的这种问题

数据集的采样和拆分

->如果数据量较大,且用不了那么大量的数据,如何获取自身需要的数据集
        采样:抽样

如何采样?
            ->采样要遵循什么原则?
                ->保证数据的多样性
                    ->成比例缩放,然后随机采样
                    ->成比例缩放,使用hash进行采样

->如果数据不均衡,如何保证多样性
                    如果研究的对象是少数族群,正常采样无法获得足够的数据,此时,可以提高少数族群在整个族群中的占比,
                    利用新的占比采样,以获取更多的学习数据。(下采样)

要想得到正确的模型,就必须将学到的少数情况还原到原本的比例上,这个过程称之为向上加权。

->拿到采样后的数据,我们有两个用途:
        用来训练的数据:训练集
        用来测试的数据:测试集

一般训练集 > 测试集
             7         3
             8        2

200

8             2
             160          40

数据集拆分需要满足怎样的条件:
            1.测试集和训练集的 2:8
            2.满足测试集和训练集的数据多样性,集每个集合尽量满足正态分布
            3.测试集不能和训练集雷同

如何拆分数据集:
            根据业务拆分
            常用的手段:
                1.随机拆分
                2.基于随机的hash拆分

数据的转换

计算机在处理数据时,对于浮点数,字符串和图片,音频来说,处理速度非常慢,并不适合大量数据处理。
    如果需要处理大量以上类型数据,数据转换就是一个不可获取的手段。

->数值数据转换
        ->正则化
            ->线性缩放
                ->数据呈现一定规律性,但是不是整数,或者整数值较大时使用。

x’ = (x - xmin) / (xmax - xmin)

->裁剪
                ->数据中存在大量异常值,可以将数据特征进行裁剪,将异常的值归为一类

if x > xmax , x' = xmax
                if x < xmin , x' = xmin

->对数缩放
                ->当数据呈现幂律分布时,需要使用对数缩放,将其缩放在一个好表示的范围内

x' = log(x)

->标准分数
                当数据中存在异常值,但是异常值没有达到裁剪的程度,就可以使用标准分数。
                x' = (x-μ)/σ
                μ和σ都是根据数据特点,自己设计出来的

->分桶
            数据呈现一种类别性的时候使用

->等距桶
                数据分布均匀时

->等量桶
                数据分布不均匀

->非数值数据转换
        ->枚举
            将字符串转换为整数,好操作,代表一种类别。(适用于类别较少时)

->符号表
            ->公共溢出区
            字符串较多,但是顺序查找依然较快时(且不在符号表范围内的东西较少,或者说异常值较少时)
        
        ->hash
            字符串非常多,且顺序查找浪费时间,有大量异常值时使用

案例:
        ->如何在招聘中获得高薪
            BS                     MS              
            笔试(分数)            面试(分数)         薪资(整数)
            10                     10                 5000-15000
                                                BS <= 3 || MS <= 3         0
                                                10 <= BS+MS <= 20

(BS + MS - 10) * 1000 + 5000

笔试成绩和哪些数据相关
                ->知识掌握程度         枚举         权重7%         0.7*a     
                                    A:10
                                    B:8
                                    C:6
                                    D:3
                ->刷题的数目         整数(0-3000) 权重5%         5/3000*b
                ->刷题的类型种类         整数         权重15%         6/15*c
                ->刷题的难易程度         枚举         权重3%         
                                    A:10                     0.3*d
                                    B:6
                                    C:3
                ->刷题的正确率         小数         权重70%         70*e

Kx + B = BS
            K(0.7*a + 5/3000*b + 0.4 * c + 0.3 *d + 70 *e) + B = BS

目的是求K和B

人工智能----->第二天,Numpy,Matplotlib,如何构建机器学习问题,数据集的收集、采样、拆分,数据的转换相关推荐

  1. 9步教你用NumPy从头开始构建神经网络!

    https://www.toutiao.com/a6693296472533762574/ 动机 如果你是一个了解神经网络如何工作的初级数据科学家,或者只是对深度学习有所了解的机器学习爱好者,那么这篇 ...

  2. 机器学习——科学计算库(Numpy,Matplotlib,Pandas)

    机器学习--科学计算库中主要介绍的内容是人工智能深度学习过程常用的几个python库,主要有Numpy,Matplotlib,Pandas等,具体如下所示 在学习的过程中,我也从网上借鉴了多位大佬的优 ...

  3. 3-2 Coursera吴恩达《构建机器学习项目》 第二周课程笔记-机器学习策略(2)

    上节课3-1 Coursera吴恩达<构建机器学习项目> 第一周课程笔记-机器学习策略(1)我们主要介绍了一些优化机器学习的策略和方法,包括正交化.评估指标.数据集的划分.贝叶斯错误率和可 ...

  4. python模型训练 warm_start_08-06 细分构建机器学习应用程序的流程-训练模型

    AI 人工智能 08-06 细分构建机器学习应用程序的流程-训练模型 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https:// ...

  5. PaddlePaddle入门|百度零基础实践深度学习课程笔记——使用Python语言和Numpy库来构建神经网络模型

    前面的课程已经讲解了Python的一些基础操作和使用Notebook实现编程的基础知识,下面通过用Python语言和Numpy库来构建神经网络模型来初步实践. 波士顿房价预测任务 问题描述 波士顿房价 ...

  6. #第17篇分享:python数据处理-pandas,numpy,matplotlib

    #python数据处理-pandas,numpy,matplotlib: 对于数据来说,有数据爬取-爬虫,数据处理-就是今天学习的,以及数据分析-sklearn,tensoflow机器学习及深度学习: ...

  7. 如何在验证集加噪声_如何使用Python构建机器学习模型

    如何使用Python构建机器学习模型?在构建机器学习模型时,我们希望将误差保持在尽可能低的水平.对于任何打算学习Python进行大数据分析的人来说,这都是一项关键技能.误差的两个主要来源是偏差和方差. ...

  8. NLTK01 《NLTK基础教程--用NLTK和Python库构建机器学习应用》

    01 关于NLTK的认知 很多介绍NLP的,都会提到NLTK库.还以为NLTK是多牛逼的必需品.看了之后,感觉NLTK对实际项目,作用不大.很多内容都是从语义.语法方面解决NLP问题的.感觉不太靠谱. ...

  9. 2020-1-29 深度学习笔记5 - 机器学习基础(构建机器学习算法)

    第5章 机器学习基础 官网 学习算法 机器学习算法是一种能够从数据中学习的算法. 所谓学习是指,对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由 ...

最新文章

  1. 关于tail, head ,less ,more ,cat 之小介------Linux命令
  2. linux线程栈溢出与局部变量,Linux下和core说再见之:栈溢出
  3. OVS vswitchd启动(三十九)
  4. ABAP更改程序的请求包操作
  5. UVa 1354 天平难题 枚举二叉树
  6. 汇编指令的学习1——ARM汇编的特点
  7. 【Vue学习】—Vue UI组件库(二十八)
  8. 爬取常用的网站,整理成API:中国联通,大众点评,IT桔子,拉勾网,猫眼电影,人人贷......
  9. Linux安装和卸载JDK
  10. 第二季-专题4-我是bootloader设计师
  11. 焦仲卿刺杀孙策_惊闻:孙伯符死于焦仲卿之手。。。
  12. @Transactional什么情况才生效
  13. 同态滤波详解(新手入门必看)
  14. 百度联合清华发布国内首个基于AI实践的产业智能化白皮书
  15. 滚轮控制摄像机移动_缩放视角_限制上下限
  16. Serval and Rooted Tree(树形dp)
  17. virtualbox中linux设置NAT和Host-Only上网(实现双机互通同时可上外网)
  18. 十进制与R进制之间的转换
  19. 哈希表的概念(散列表)
  20. MySQL中Count和Sum的区别

热门文章

  1. 总有一个适合您的Chrome小技巧
  2. 英文简历必备的关键词句
  3. postcss解决兼容_使用PostCSS进行跨浏览器兼容性
  4. 弘辽科技:淘宝店铺资质怎么去提升?
  5. RationalDMIS 2020运行程序时自动输出到Excel摸板
  6. u8系统服务器,u8 系统服务器
  7. Javaweb新闻管理系统01
  8. 库和包集合(VHDL语言)
  9. Java 同步机制浅谈(转贴) http://www.yuanma.org/data/2007/0523/article_2619.htm 中国源码网
  10. [附源码]Java计算机毕业设计SSM防疫物资捐赠系统