集成学习手册

打卡任务

本次打卡学习了解机器学习的三大主要任务,对应开源学习包中CH2的导论,1.1,1.2,1.3

1.导论

  1. 什么是机器学习? ,机器学习可看成是理解数据的一种方法,发现数据中的规律,对数据进行分析和预测;
  2. 数据的表达,数据通常是用一组向量进行表示,这组向量的每个向量都为一个样本,我们对数据的形式作出如下约定:
    第i个样本\x_i=(x_i1,x_i2,…,x_ip,y_i)T,i=1,…,N
    因变量\y=(y_1,y_2,…,y_N)T
    第k个特征:\x(k)=(x_1k,x_2k,…,x_Nk)T
    特征矩阵X=(x_1,x_2,…,x_N)T,其中一行表示一个样本,一列表示一种特征;
  3. 有监督学习与无监督学习 ,根据数据是否有因变量进行分别
    在这里插入图片描述
    有监督学习的目的是利用某些特征来估计因变量,例如利用影响房价的一些因素来对房价进行预测,用电预测等
    无监督学习的目的是学习数据本身的结构和关系。例如企业通过收集与分析消费者社会属性、生活习惯等进行客户画像分析,对客户进行分类;
  4. 回归和预测根据因变量是否连续,有监督学习又分为回归和预测;
  5. 相关科学计算包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use("ggplot")#用style来设置plt风格
import seaborn as sns#Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表

1.1回归

数据中因变量为波士顿房价Price是一个连续型变量,为一个回归的例子。
利用sklearn内置数据集Boston房价数据集分析
sklearn中所有内置数据集都封装在datasets对象内:返回的对象有:
data:特征X的矩阵(ndarray)
target:因变量的向量(ndarray)
feature_names:特征名称(ndarray)

1.生成数据

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

boston_data即构成了我们要进行分析的数据。

2.选取一个特征,分析其于因变量的关系

sns.scatterplot(boston_data['NOX'],boston_data['Price'],color='r',alpha=0.6)
plt.title('Price~NOX')
plt.show()

例如选取NOX,可以看出随着NOX的数值变大,Price的数值在变小。NOX对房价的影响是负面的。

sns.scatterplot(boston_data['CHAS'],boston_data['Price'],color='r',alpha=0.6)
plt.title('Price~CHAS')
plt.show()

CHAS特征只有两类,在河边为1,不在为0,可以看出CHAS=1时,PRICE分布较集中,处于中间房价的较多。

1.2分类

用鸢尾花数据集进行分析
1.准备分析数据

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

2.可视化特征

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])#枚举
plt.xlabel('sepal length(cm)')
plt.ylabel('sepal width(cm)')
plt.legend()
plt.show()

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

1.3无监督学习

我们可以使用sklearn生成符合自身需求的数据集,下面我们用其中几个函数例子来生成无因变量的数据集:
https://scikit-learn.org/stable/modules/classes.html?highlight=datasets#module-sklearn.datasets

#生成月牙型非凸集
from sklearn import datasets
x,y=datasets.make_moons(n_samples=2000,shuffle=True,noise=0.05,random_state=None)#shuffle指是否随机
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()

总结

对用sklearn函数生成符合自身需求的数据集不是很熟练

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值