机器学习基础—集成学习Task1

导语:
今天开始组队学习—集成学习的Task1了,首先感谢Datawhale,一个十分优秀的AI开源组织,欢迎大家关注哦!本次任务就是机器学习的一些基础概念,首先附上学习链接:
链接1: EnsembleLearning项目-github.
链接2: 机器学习基础-知乎专栏.

1.机器学习问题分类

从数据集的角度看机器学习:数据集一般由自变量(x,特征)和因变量(y,标签)组成。
根据所要处理的数据中有没有因变量,机器学习可分为有监督学习和无监督学习
(1)有监督学习
指所分析的数据集中既含有自变量,也有因变量,这也是我们最常遇到的机器学习任务。
其中,根据因变量(y)是否连续,有监督学习又可分为回归问题(y连续)和分类问题(y离散)。(还有一类是排序问题,输出y是一个序列)
(2)无监督学习
指所分析的数据集中只含有自变量,没有因变量,建模的目的是学习数据本身的结构和关系。如聚类分析,降维分析等,这不是我们讨论的重点。
(3)强化学习
实际上,我认为强化学习应该是独立于上面两类的一类新的问题,这个有机会再介绍。

2.回归

(1)首先我们可以导入Boston数据集作为回归问题
数据集中特征含义具体可以自查~

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()  #查看数据前几行

(2)绘图分析
绘图的基础就不说了,这里介绍学到的两个新功能:运行时间和绘图风格

%%time  #可以用来查看程序运行的时间
%matplotlib inline 
plt.style.use("ggplot")  #将绘图风格调整为ggplot风格

普通sns.scatterplot()作图效果(以分析Price~NOX)为例:
NOX:一氧化氮浓度(/千万分之一)
boston数据集:Price~NOX
使用ggplot的绘图效果:
boston数据集:Price~NOX
二者的绘图效果自己去感受,我觉得后者绘图逼格略高,有质感。但从绘制时间上来说,在美观的同时,多花了一倍的时间(178ms)。
从图中,可以明显看出:在一氧化氮浓度低的地方的房价较高,反之相反,这符合直观常识,毕竟污染小的区域房源竞争激烈!
再看一个感兴趣关系吧:
Price(房价)~CRIM(各城镇人均犯罪率):
Price(房价)~CRIM(各城镇人均犯罪率)
这个关系更加明显:犯罪率越低的区域,房价自然越高,符合常识。

3.分类

(1)导入iris数据集作分析:

from sklearn import datasets
iris = datasets.load_iris()

iris数据集中的特征解释:
sepal length (cm):花萼长度(厘米)
sepal width (cm):花萼宽度(厘米)
petal length (cm):花瓣长度(厘米)
petal width (cm):花瓣宽度(厘米)
(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)enumerate()是python的内置函数,对一个可迭代对象,用于既要遍历索引又要遍历元素时。enumerate还可以接收第二个参数,用于指定索引起始值。
2)unique( )用于去除重复值,保留唯一值
按花萼分类:
在这里插入图片描述
按花瓣分类:
在这里插入图片描述
每种不同的颜色和点的样式为一种类型的鸢尾花,数据集有三种不同类型的鸢尾花。

4.无监督学习

我们可以使用sklearn生成符合自身需求的数据集,这些数据集没有因变量,可以用来模拟无监督学习
注:无监督数据样本生成可访问sklearn的API:
sklearn-API: Samples generator.
(1)生成无监督数据,并可视化:

# 生成月牙型非凸集
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()

效果:
月牙型非凸集
(2)通过make_checkerboard函数生成一个棋盘数据集:

# 生成棋盘数据集
from sklearn import datasets
n_clusters = (4, 3)
data, rows, columns = datasets.make_checkerboard(
    shape=(300, 300), n_clusters=n_clusters, noise=10,
    shuffle=False, random_state=0)

plt.matshow(data, cmap=plt.cm.Blues)
plt.title("Original dataset")

效果:
棋盘数据集

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值