一、机器学习定义

1.机器学习定义

机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。

机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning)等算法。

机器学习的基本思路是模仿人类学习行为的过程,如我们在现实中的新问题一般是通过经验归纳,总结规律,从而预测未来的过程。

2 机器学习分类

2.1 监督学习

从有标签的训练数据中学习模型,然后对某个给定的新数据利用模型预测它的标签。如果分类标签精确度越高,则学习模型准确度越高,预测结果越精确。

监督学习主要用于回归与分类。

回归:预测连续的、具体的数值;分类:预测非连续的、离散的数据。

常见的监督学习的回归算法有线性回归、回归树、K邻近、Adaboost、神经网络等。

常见的监督学习的分类算法有朴素贝叶斯、决策树、SVM、逻辑回归、K邻近、Adaboost、神经网络等。

2.2 半监督学习

半监督学习是利用少量标注数据大量无标注数据进行学习的模式。

半监督学习侧重在有监督的分类算法中加入无标记样本来实现半监督分类。

常见的半监督学习算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等。

3.3  无监督学习

2.3 无监督学习

监督学习是从未标注数据中寻找隐含结构的过程。

无监督学习主要用于关联分析、聚类和降维。

常见的无监督学习算法有稀疏自编码(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)等。

2.4 强化学习

强化学习类似于监督学习,但未使用样本数据进行训练,是通过不断试错进行学习的模式。

在强化学习中,有两个可以进行交互的对象:智能体和环境;四个核心要素:策略、回报函数(收益信号)、价值函数和环境模型,其中环境模型是可选的。

强化学习常用于机器人避障、棋牌类游戏、广告和推荐等应用场景中。

3 机器学习的应用场景

1、自然语言处理(NLP)

2、医疗诊断与影像分析

3、金融风险管理

4、预测与推荐系统

5、制造业和物联网

6、能源管理与环境保护

7、决策支持与智能分析

8、图像识别与计算机视觉

4 机器学习项目开发步骤

有5大步骤用于执行机器学习任务:

收集数据、准备数据、练模型、评估模型、提高性能。

二、scikit-learn工具

Scikit-learn官网:scikit-learn: machine learning in Python — scikit-learn 1.7.0 documentation

1 scikit-learn安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

2 scikit-learn包含的内容

分类、回归、聚类、降低维度、模型选择、特征预处理

三 数据集

1 sklearn玩具数据集

数据量小,数据在sklearn库本地。

2 sklearn现实世界数据集

数据量大,数据只能通过网络获取


3 sklearn加载玩具数据集

实例1:鸢尾花数据

鸢尾花数据集介绍:特征有:花萼长 sepal length、花萼宽sepal width、花瓣长 petal length、花瓣宽 petal width;

三分类:0-Setosa山鸢尾、1-versicolor变色鸢尾、2-Virginica维吉尼亚鸢尾;

代码:

from sklearn.datasets import load_iris
iris = load_iris()#鸢尾花数据
print(iris.data)#得到特征
print(iris.feature_names) #特征描述
print(iris.target) #目标形状
print(iris.target_names)#目标描述
print(iris.filename) #iris.csv 保存后的文件名
print(iris.DESCR)#数据集的描述

iris字典中的重要属性:1、data 特征  2、feature_names 特征描述  3、 target  目标 4、 target_names  目标描述  5、DESCR 数据集的描述 6、filename 下后到本地保存后的文件名

使用pandas将特征和目标一起显现出来:

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
feature = iris.data
target = iris.target
target.shape=(len(target), 1)
data = np.hstack([feature, target])
cols = iris.feature_names
cols.append("target")
pd.DataFrame(data,columns=cols)

结果:

实例2:糖尿病数据集

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
feature = iris.data
target = iris.target

target.shape=(len(target), 1)
data = np.hstack([feature, target])
cols = iris.feature_names
cols.append("target")
pd.DataFrame(data,columns=cols)

结果:


4 sklearn获取现实世界数据集

(1)所有现实世界数据,通过网络才能下载后,默认保存的目录可以使用下面api获取。实际上就是保存到home目录。

from sklearn import datasets
datasets.get_data_home()  #查看数据集默认存放的位置

例子:获取20分类数据

"""获取20分类新闻数据"""
from sklearn.datasets import fetch_20newsgroups 
'''data_home:默认值是None,subset:train只下载数据集;test:只下载测试集;all:下载的数据包含了训练集和测试集;return_X_Y:决定返回值的情况,False,默认值;True;'''
news = fetch_20newsgroups(data_home=None,subset='all')
print(len(news.data)) #18846
print(news.target.shape) #(18846,)
print(len(news.target_names)) #20
print(len(news.filenames)) #18846

四、本地csv数据

1 创建csv文件

1、可以使用记事本,按需写出输入,数据之间使用英文下的逗号,然后将文件保存为csv后缀。

2、创建excel文件,填写数据,以csv后缀保存文件。

2 pandas加载csv

pd.read_csv("./src/ss.csv")

五、数据集的划分

1 函数

skleaen,model_selection.train_test_split(*arrays,**options)

参数
(1) *arrays: 
 这里用于接收1到多个列表、numpy数组、稀疏矩阵或padas中的DataFrame。    
(2) **options:
test_size 值为0.0到1.0的小数,表示划分后测试集占的比例;
random_state 值为任意整数,表示随机种子,使用相同的随机种子对相同的数据集多次划分结果是相同的。否则多半不同。


返回值为列表list, 列表长度与形参array接收到的参数数量相关联, 形参array接收到的是什么类型,list中对应被划分出来的两部分就是什么类型。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐