@[TOC](集成学习(上)——task1 机器学习中的三大任务)
前言
机器学习的主要的目标就是用数学模型来理解数据,发现数据中的规律,通过发现发现的规律用作数据的分析和预测;
根据数据集是否有因变量,机器学习的任务主要是可以分为:有监督学习和无监督学习
其中有监督学习主要是分为: 回归和分类
一、回归
机器学习中主要的库就是sklearn,可以直接用过改库下载数据,并且将数据输入到pandas的DataFrame中,可以对数据进行分析
代码如下:
from sklearn import datasets
import pandas as pd
boston = datasets.load_boston() # 返回一个类似于字典的类
X = boston.data
y = boston.target
features = boston.feature_names
boston_data = pd.DataFrame(X,columns=features)
boston_data["Price"] = y
boston_data.head()
代码中通过:
datasets.load_boston()方法导入波士顿房价的数据(经典的预测问题),可以从数据的可视化中看出,最后就是本数据的因变量(波士顿房价Price),所以本问题属于的是一个回归问题,同时也是有监督问题。
二、分类
代码如下(示例):
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
features = iris.feature_names
iris_data = pd.DataFrame(X,columns=features)
iris_data['target'] = y
iris_data.head()
通过DataFrame中的head()函数,可以看数据的最后一列表示的target也就是该样本所属的类别,同时通过数据可视化可以看出图中的数据主要分为三类,类别2和3之间的分类界限是十分不明显的。
三、无监督学习
在无监督学习中,我们往往只有特征数据而没有相对应的标签,所以我们在学习过程需要发现数据内在的规律,进而将其转换成我们熟悉的学习模式。
在本节需要着重了解下的就是生成无监督学习的相关sklearn的函数:
https://scikit-learn.org/stable/modules/classes.html?highlight=datasets#module-sklearn.datasets
总结
其实总体来说有监督学习和无监督学习,可以简化为是否含有给定的标签。
所以监督学习:在模型的迭代过程中,通过将模型的预测值和真实值进行比较,运用不同的评价函数,将预测值和真实值之间的差距反馈给模型,使得模型在迭代过程中不断的自我调整,最终输出我们预想的值,也就是模型的发展是我们的监督之下的。
无监督学习:无监督学习由于缺乏对应的标签,所以模型在迭代过程中自由发展和探索数据样本之间内在的规律。