集成学习-Task2 机器学习基础模型回顾

1. 机器学习的分类

        假设数据集中有N个样本,每个样本记作x_{i} = (x_{i}^{1}, x_{i}^{2}, \cdots, x_{i}^{m}, y_{i})。前m个维度称之为特征,最后一个维度称之为因变量(我习惯叫做标签)。特征是用来描述影响因变量的因素的。根据是否有因变量,机器学习可以分为有监督学习和无监督学习。

        有监督学习:有因变量,预测结果。例如根据房屋参数做房价预测。其中,根据因变量是连续的还是离散的,有监督学习还可以细分为回归和分类。

        无监督学习:无因变量,寻找数据中存在的关系或结构。例如根据电商用户消费记录寻找行为相似的用户。

2. 有监督学习——回归问题(以波士顿房价数据集为例)

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

         其中各个特征的解释如下:

  • CRIM:各城镇的人均犯罪率
  • ZN:规划地段超过25,000平方英尺的住宅用地比例
  • INDUS:城镇非零售商业用地比例
  • CHAS:是否在查尔斯河边(=1是)
  • NOX:一氧化氮浓度(/千万分之一)
  • RM:每个住宅的平均房间数
  • AGE:1940年以前建造的自住房屋的比例
  • DIS:到波士顿五个就业中心的加权距离
  • RAD:放射状公路的可达性指数
  • TAX:全部价值的房产税率(每1万美元)
  • PTRATIO:按城镇分配的学生与教师比例
  • B:1000(Bk - 0.63)^2其中Bk是每个城镇的黑人比例
  • LSTAT:较低地位人口
  • Price:房价(最终要预测的标签)

         如果我们事先不清楚这是一个回归问题的数据集,凭借我们的认知和对房价的观察,我们会断定这是一个回归问题。因为房价是连续型数据。不过我们最好还是用别的方法验证一下。

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

         可以看到房价确实是连续的。

 3. 有监督学习——分类问题(以鸢尾花数据集为例)

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

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

        其中各个特征的解释如下:

  • sepal length (cm):花萼长度(厘米)
  • sepal width (cm):花萼宽度(厘米)
  • petal length (cm):花瓣长度(厘米)
  • petal width (cm):花瓣宽度(厘米)

        同样,我们借助可视化来看看这到底是不是一个分类问题数据集。

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

 4. 无监督学习

        由于集成学习部分主要关注的是有监督学习,因此这里只对无监督学习给一些简单的例子。

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

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

 5. 一般回归模型

        由于我之前总结过一些内容,这里就不再赘述了。

        线性回归模型:https://blog.csdn.net/Zee_Chao/article/details/104984015

        多项式回归:https://blog.csdn.net/Zee_Chao/article/details/105325392

        SVM:https://blog.csdn.net/Zee_Chao/article/details/105896902

6. 一般分类模型

        逻辑回归模型:https://blog.csdn.net/Zee_Chao/article/details/105477926

        决策树:https://blog.csdn.net/Zee_Chao/article/details/105603343

        SVM:https://blog.csdn.net/Zee_Chao/article/details/105896902

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值