记录 DataWhale集成学习的组队学习过程,Task1是熟悉机器学习的三个任务,属于入门级的知识。我们知道,根据样本有无标签,传统机器学习可以分为有监督学习(样本有标签)和无监督学习(样本无标签)。
有监督学习中的带标签数据集可表示为: D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋯ ( x m , y m ) } D=\{(\boldsymbol{x_1},y_1),(\boldsymbol{x_2},y_2)\cdots(\boldsymbol{x_m},y_m)\} D={(x1,y1),(x2,y2)⋯(xm,ym)},其中 x i ∈ R d \boldsymbol{x_i}\in\mathbb R^d xi∈Rd,表示样本的维度为 d。根据标签 y的类型,有监督学习又可以分为两类: y ∈ R y\in\mathbb R y∈R时称作回归问题; y ∈ N y\in\mathbb N y∈N时为分类问题。
无监督学习就是数据集是无标签的,如: D = { x 1 , x 2 ⋯ x m } D=\{\boldsymbol{x_1},\boldsymbol{x_2}\cdots\boldsymbol{x_m}\} D={x1,x2⋯xm},其中 x i ∈ R d \boldsymbol{x_i}\in\mathbb R^d xi∈Rd,对于无标签问题,需要从特征本身进行挖掘。
回归数据集
以Boston房价数据集为例子,给出了回归问题的实例
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets
boston = datasets.load_boston() # sklearn子代的数据集,直接导入即可。
X = boston.data #特征
y = boston.target #数值型标签
features = boston.feature_names #特征的名字
boston_data = pd.DataFrame(X,columns=features) #创建DataFrame
boston_data["Price"] = y
sns.scatterplot(boston_data['CRIM'],boston_data['Price'],alpha=0.5)#使用seaborn画散点图,这里画的是犯罪率和房屋价格的关系。
plt.show()
分类数据集
以iris数据集为例子,给出了分类问题的实例。
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
marker = ['s','x','o']
for index,c in enumerate(np.unique(y)):
plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])#sepal length为横坐标,sepal width为纵坐标,画分布图。
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.legend()
plt.show()
无监督数据集
# 生成符合正态分布的聚类数据
x, y = datasets.make_blobs(n_samples=5000, n_features=2, centers=3)#make_blobs函数用于生成聚类数据集
for index,c in enumerate(np.unique(y)):
plt.scatter(x[y==c, 0], x[y==c, 1],s=7)
plt.show()