datawhale集成学习01——机器学习的三大任务

机器学习的基本认知

机器学习是一个用数学模型理解数据的过程,在理解数据的过程中通过对模型参数的不断调整来实现对数据特征的一种刻画,这种刻画一方面是对数据信息的一种集中和筛选,另一方面可以被用来对具有类似数据特征的事件进行预测。

机器学习所利用的数据通常由一组向量组成,这组向量中的每个向量都是一个样本,每个向量共p+1个维度,前p个维度的每个维度我们称为一个特征,最后一个维度 𝑦𝑖 我们称为因变量(响应变量)。根据数据是否有因变量。机器学习可分为有监督学习无监督学习。在有监督学习中,又可根据因变量是连续型变量或离散型变量而分为回归分类。对无监督学习而言,建模的主要目的是去学习数据本身的结构关系,根据寻找到的结构关系对数据进行划分等其他操作。
在这里插入图片描述
一般使用scikit-learn简称sklearn工具库来探索机器学习项目

1.回归

有监督学习中回归的例子,使用sklearn内置数据集Boston房价数据集。sklearn中所有内置数据集都封装在datasets对象内: 返回的对象有:

  • data:特征X的矩阵(ndarray)
  • target:因变量的向量(ndarray)
  • feature_names:特征名称(ndarray)
# 引入相关科学计算包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline 
plt.style.use("ggplot")      
import seaborn as sns
from sklearn import datasets
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()

在这里插入图片描述

sns.scatterplot(boston_data['NOX'],boston_data['Price'],color="r",alpha=0.6)# alpha参数应该是控制图示红点的深浅
plt.title("Price~NOX")
plt.show()

在这里插入图片描述
在这里插入图片描述

2.分类

鸢尾花数据集

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()

在这里插入图片描述

# 可视化特征
marker = ['s','x','o']
for index,c in enumerate(np.unique(y)):#np.unique,去除数组中重复的数字,排序后输出          #enumerate生成器,同时生成索引和值
    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])
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.legend()
plt.show()

在这里插入图片描述
在这里插入图片描述

每种不同的颜色和点的样式为一种类型的鸢尾花,数据集有三种不同类型的鸢尾花。因此因变量是一个类别变量,因此通过特征预测鸢尾花类别的问题是一个分类问题。

3.无监督学习

可以使用sklearn生成符合自身需求的数据集
sklearn类和函数的参考网页

在这里插入图片描述

# 生成月牙型非凸集
from sklearn import datasets
x, y = datasets.make_moons(n_samples=2000, shuffle=True,
                  noise=0.05, random_state=None)
for index,c in enumerate(np.unique(y)):
    plt.scatter(x[y==c,0],x[y==c,1],s=7)
plt.show()

在这里插入图片描述

# 生成符合正态分布的聚类数据
from sklearn import datasets
x, y = datasets.make_blobs(n_samples=5000, n_features=2, centers=3)
for index,c in enumerate(np.unique(y)):
    plt.scatter(x[y==c, 0], x[y==c, 1],s=7)
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值