【集成学习】task1 机器学习三大主要任务

1.什么是机器学习?

机器学习的一个重要的目标就是利用数学模型来理解数据,发现数据中的规律,用作数据的分析和预测。

数据通常由一组向量组成,这组向量中的每个向量都是一个样本,我们用 x i x_i xi来表示一个样本,其中 i = 1 , 2 , 3 , . . . , N i=1,2,3,...,N i=1,2,3,...,N,共N个样本,每个样本 x i = ( x i 1 , x i 2 , . . . , x i p , y i ) x_i=(x_{i1},x_{i2},...,x_{ip},y_i) xi=(xi1,xi2,...,xip,yi)共p+1个维度,前p个维度的每个维度我们称为一个特征,最后一个维度 y i y_i yi我们称为因变量(响应变量)。

特征用来描述影响因变量的因素,如:我们要探寻身高是否会影响体重的关系的时候,身高就是一个特征,体重就是一个因变量。通常在一个数据表dataframe里面,一行表示一个样本 x i x_i xi,一列表示一个特征。


2.机器学习任务

  • 有监督学习:给定某些特征去估计因变量,即因变量存在的时候,我们称这个机器学习任务为有监督学习。如:我们使用房间面积,房屋所在地区,环境等级等因素去预测某个地区的房价。

  • 无监督学习:给定某些特征但不给定因变量,建模的目的是学习数据本身的结构和关系。如:我们给定某电商用户的基本信息和消费记录,通过观察数据中的哪些类型的用户彼此间的行为和属性类似,形成一个客群。注意,我们本身并不知道哪个用户属于哪个客群,即没有给定因变量

在这里插入图片描述
根据因变量的是否连续,有监督学习又分为回归和分类:

  • 回归:因变量是连续型变量,如:房价,体重等。
  • 分类:因变量是离散型变量,如:是否患癌症,西瓜是好瓜还是坏瓜等。

为了更好地叙述后面的内容,我们对数据的形式作出如下约定:
第i个样本: x i = ( x i 1 , x i 2 , . . . , x i p , y i ) T , i = 1 , 2 , . . . , N x_i=(x_{i1},x_{i2},...,x_{ip},y_i)^T,i=1,2,...,N xi=(xi1,xi2,...,xip,yi)T,i=1,2,...,N
因变量: y = ( y 1 , y 2 , . . . , y N ) T y=(y_1,y_2,...,y_N)^T y=(y1,y2,...,yN)T
第k个特征: x ( k ) = ( x 1 k , x 2 k , . . . , x N k ) T x^{(k)}=(x_{1k},x_{2k},...,x_{Nk})^T x(k)=(x1k,x2k,...,xNk)T
特征矩阵: X = ( x 1 , x 2 , . . . , x N ) T X=(x_1,x_2,...,x_N)^T X=(x1,x2,...,xN)T


下面对机器学习三大主要任务进行演示

2.1有监督学习

先导入基本的包

# 引入相关科学计算包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline 
plt.style.use("ggplot")      
import seaborn as sns

2.1.1回归

使用sklearn内置的Boston房价数据集,sklearn中所有内置数据集都封装在datasets对象内:
返回的对象有:

  • data:特征X的矩阵(ndarray)
  • target:因变量的向量(ndarray)
  • feature_names:特征名称(ndarray)

先看下数据,共有506条,每条12个特征,相关特征如下

特征含义
CRIM各城镇的人均犯罪率
ZN规划地段超过25,000平方英尺的住宅用地比例
INDUS城镇非零售商业用地比例
CHAS是否在查尔斯河边(=1是)
NOX一氧化氮浓度(/千万分之一)
RM每个住宅的平均房间数
AGE1940年以前建造的自住房屋的比例
DIS到波士顿五个就业中心的加权距离
RAD放射状公路的可达性指数
TAX全部价值的房产税率(每1万美元)
PTRATIO按城镇分配的学生与教师比例
B1000(Bk - 0.63)^2其中Bk是每个城镇的黑人比例
LSTAT较低地位人口
Price房价
from sklearn import datasets
boston=datasets.load_boston() #返回一个类似字典的类
X=boston.data
y=boston.target
print(X.shape,y.shape)
features=boston.feature_names
boston_data=pd.DataFrame(X,columns=features)
boston_data['Price']=y
boston_data

在这里插入图片描述

绘制下 NOX一氧化氮浓度(/千万分之一)和Price房价的散点图,因为波士顿房价Price是一个连续型变量,所以这是一个回归的例子
在这里插入图片描述

2.1.2分类

这里用iris数据集来展示下,鸢尾花数据集有四个特征和三类鸢尾花,各特征含义

特征含义
- sepal length (cm)花萼长度(厘米)
- sepal width (cm)花萼宽度(厘米)
- petal length (cm)花瓣长度(厘米)
- petal width (cm)花瓣宽度(厘米)
from sklearn import datasets
iris=datasets.load_iris()
X=iris.data
y=iris.target
print(X.shape,y.shape)
features=iris.feature_names 
iris_data=pd.DataFrame(X,columns=features)
iris_data['target']=y
print('鸢尾花共有{}类'.format(iris_data['target'].nunique()))
iris_data

在这里插入图片描述
可视化sepal length (cm) sepal 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() 

在这里插入图片描述


2.2无监督学习

我们可以使用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)
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一个开源的计算机视觉库,它集成了多种机器学习算法供我们方便使用。如果我们要训练数据进行分类,不用自己写分类器,只需要调用相应的库和类即可轻松实现。OpenCV库用C语言和C++语言编写,可以在多个操作系统上运行,同时也在积极开发Python、Java、Matlab以及其他一些语言的接口,将库导入安卓和iOS中为移动设备开发应用。OpenCV的目标是提供易于使用的计算机视觉接口,帮助人们快速建立精巧的视觉应用。该库包含从计算机视觉各个领域衍生出来的500多个函数,包括工业产品质量检验、医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机器人学等应用领域。 OpenCV中的机器学习算法可以通过调用相应的库和类来使用。一些常见的算法和思想包括PCA主成分分析、Canny边缘检测算法、K-Means聚类算法和SIFT算法等。这些算法可以帮助我们处理图像和数据,并进行分类、聚类、特征提取等任务。 在使用OpenCV进行机器学习时,可以使用getTrainSample()和getTestSamples()方法来查看分割后的训练集和测试集。通过对训练集进行训练,可以得到用于分类和预测的模型,然后可以使用测试集来评估模型的性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [OpenCV机器学习——支持向量机SVM](https://download.csdn.net/download/weixin_38603936/14940002)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [传统机器学习算法解析(opencv实现)](https://blog.csdn.net/m0_63260018/article/details/131224776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [OPenCV中的机器学习](https://blog.csdn.net/qq_59931372/article/details/129719073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值