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

机器学习machine learning

1. 概念

机器学习是从数据中提取知识。涉及统计学和人工智能,也被称为预测分析或统计学习。

应用领域非常广泛,用户习惯预测,个性推荐,分析DNA序列等等。

机器学习优势是将决策过程自动化,需要涉及较好的算法。如果决策过程从已知示例泛化得出,这种叫监督学习(supervised learning),就是输入包括预期输出和待处理输入,算法给出输出结果。无监督学习(unsupervised learning algorithm),输入只有待处理输入。

无论监督学习还是无监督学习,将输入数据表征为计算机可以处理的形式都非常重要。例如,将数据想象成二维表格。你要处理的每一个数据点对应表格中一行记录,比如某学生,学生姓名,年龄,专业等等;用每个像素的灰度值描述肿瘤图像,或者大小、形状和颜色。

在机器学习中,每个实体或每一行称为一个样本(sample)或数据点,每一列被称为特征(feature)。如何构建良好的数据表征,被称为特征提取(feature extraction)或特征工程(feature engineering)。

2. 数据处理(机器学习)基本过程OCAI

机器学习和数据分析本质上都是迭代过程,由数据驱动分析。

对象(Objects):我想解决问题是什么?问题的对象是谁?

采集(Collectiong):收集到的数据能够回答这个问题吗?

分析(Analysis):用哪种方法分析我的问题,选择哪类机器学习算法?这些特征能否正确预测?

呈现(Interpretation):如何表述机器学习结果是有效的?对解决其它相关问题的影响?

3. 机器学习利器——Python

Python具有通用变成语言的强大功能,具有特定领域脚本语言的易用性,如Matlab或R。具有进行数据读取、统计、自然语言处理、图像处理、可视化等各种功能库。为数据科学家提供丰富的工具库。

4. 机器学习库scikit-learn

scikit-learn项目开源免费使用,包含众多机器学习算法,详细文档网址:http://scikit-learn.org/stable/documentation

4.1 安装scikit-learn

scikit-learn依赖包:NumPy和SciPy。进行绘图和交互开发,还需安装matplotlib、IPython和Jupyter Notebook,可通过pip install 的方式安装。

 pip install numpy scipy matplotlib ipython scikit-learn pandas
  • Jupyter Notebook

    浏览器运行代码的交互环境

  • NumPy

    Python科学计算基础包之一。功能包括多为数组、高级数学函数,以及伪随机数生成器。在scikit-learn中,NumPy数组是基本数据结构。scikit-leearn接受NumPy数组格式的数据。待处理的数据都必须转换成NumPy数组。NumPy的核心功能是ndarray类,即多维(n维)数组。数组的所有元素必须是同一类型。举例

import numpy as np
DataX = np.array([[3,6,9],[4,7,0]])
print("Data:\n{}".format(DataX))

结果:

x:
[[3 6 9][4 7 9]]
  • Scipy

SciPy是Python中科学计算的函数集合。具有线性代数高级程序、数学函数优化、信号处理、

特殊数学函数和统计分布等功能。scikit-learn利用SciPy函数集合实现算法。用SciPy中scipy.sparse可以给出稀疏矩阵(sparse matrice)。示例如下:

from scipy import sparse
eye = np.eye(4)
print("NumPy array:\n{}".format(eye))

结果:

NumPy array:
[[ 1. 0. 0. 0.][ 0. 1. 0. 0.][ 0. 0. 1. 0.][ 0. 0. 0. 1.]]
  • matplotlib

Python中主要科学绘图库,如折线图、直方图、散点图等。在Jupyter Notebook中,可以使用%matplotlib notebook和%matplotlib inline命令,在浏览器中现实图像。

%matplotlib inline
import matplotlib.pyplot as plt
# 在-10和10之间⽣成⼀个数列,共100个数
x = np.linspace(-10, 10, 100)
# ⽤正弦函数创建第⼆个数组
y = np.sin(x)
# plot函数绘制⼀个数组关于另⼀个数组的折线图
plt.plot(x, y, marker="x")

  • pandas

处理和分析数据的库。它基于一种叫DataFrame的数据结构,模仿R语言中DataFrame。类似于Excel表格,包含大量修改表格和操作表格的方法,可以项SQL一样对表格进行查询和连接。与NumPy要求数组中所有元素数据类型完全一致,与NumPy不同的是,pandas允许每一列数据类型不同,可以从许多文件格式和数据库中提取数据。可以利用字典创建数据集。

import pandas as pd
from IPython.display import display
# 创建关于⼈的简单数据集
data = {'Name': ["John", "Anna", "Peter", "Linda"], 'Location' : ["New York", "Paris","Berlin", "London"], 'Age' : [24, 13, 53, 33] }
data_pandas = pd.DataFrame(data)
# IPython.display可以在Jupyter Notebook中打印出“美观的”DataFrame
display(data_pandas)

注:本文内容建议使用Jupyter Notebook实现

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python爬-------urllib代理和代理池(第十七天)
  • 专业140+总410+国防科技大学831信号与系统考研经验国防科大电子信息与通信,真题,大纲,参考书。
  • 电脑远程控制esp32上的LED
  • 设计模式之创建型模式
  • 不同的子序列-java
  • UE4_动画基础_角色的缩放
  • conda创建虚拟环境太慢,Collecting package metadata (current_repodata.json): failed
  • SQLite数据库的性能问题并不是单纯地由数据量的大小决定的,而是受到多种因素的综合影响。以下是一些可能导致SQLite性能问题的因素
  • MongoDB聚合运算符:$map
  • AJAX —— 学习(一)
  • Leetcode56_合并区间
  • 21. 面试指导-高频面试题详解
  • 一次部署,多处运行:Docker容器化开发
  • Java 处理Mysql获取树形的数据
  • SpringBoot多级多模块聚合项目下maven打包报‘packaging‘ with value ‘jar‘ is invalid.
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Android 控件背景颜色处理
  • Codepen 每日精选(2018-3-25)
  • emacs初体验
  • HomeBrew常规使用教程
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • leetcode-27. Remove Element
  • SwizzleMethod 黑魔法
  • windows下如何用phpstorm同步测试服务器
  • 阿里云Kubernetes容器服务上体验Knative
  • 从零开始学习部署
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 学习HTTP相关知识笔记
  • 源码安装memcached和php memcache扩展
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​虚拟化系列介绍(十)
  • # 职场生活之道:善于团结
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #FPGA(基础知识)
  • #pragam once 和 #ifndef 预编译头
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3) cmake编译多个cpp文件
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转) ns2/nam与nam实现相关的文件
  • (转)大型网站的系统架构
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat文件调用java类的main方法
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 的程序集加载上下文