姚路遥遥
深度学习、计算机视觉
展开
-
【机器学习】什么是监督学习、半监督学习、无监督学习、自监督学习以及弱监督学习
注:其实现在很多论文里对自监督和无监督已经不做区分。原创 2023-03-14 22:48:55 · 3370 阅读 · 0 评论 -
【机器学习】集成学习(Ensemble Learning)介绍
1. 概述 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。 &n原创 2021-02-22 19:04:51 · 318 阅读 · 0 评论 -
【机器学习】监督学习--(回归)决策树③--回归树
注:数据集在文章末尾(1)回归树import numpy as npimport matplotlib.pyplot as pltfrom sklearn import tree# 载入数据data = np.genfromtxt("data.csv", delimiter=",")x_data = data[:,0,np.newaxis]y_data = data[:,1,np.newaxis]plt.scatter(x_data,y_data)plt.show()model原创 2021-02-16 00:06:08 · 156 阅读 · 2 评论 -
【机器学习】监督学习--(分类)逻辑回归
注:数据集放在文章末尾逻辑回归 —— 梯度下降法import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import preprocessing# 数据是否需要标准化scale = True# 载入数据data = np.genfromtxt("LR-testSet.csv", delimiter=",")x_data =原创 2021-02-11 00:26:59 · 217 阅读 · 1 评论 -
【机器学习】监督学习--(分类)决策树②
注:数据集在文章末尾(1)决策树–线性二分类import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import tree# 载入数据data = np.genfromtxt("LR-testSet.csv", delimiter=",")x_data = data[:,:-1]y_data = data[:,-1]pl原创 2021-02-15 23:36:42 · 300 阅读 · 0 评论 -
【机器学习】监督学习--(回归)岭回归
注:数据集放在文章末尾(1)岭回归 —— 标准方程法import numpy as npfrom numpy import genfromtxtimport matplotlib.pyplot as plt # 读入数据 data = genfromtxt(r"longley.csv",delimiter=',')# 切分数据x_data = data[1:,2:]y_data = data[1:,1,np.newaxis]# 给样本添加偏置项X_data = np.concat原创 2021-02-10 23:53:23 · 294 阅读 · 1 评论 -
【机器学习】监督学习--(回归)LASSO
注:数据集放在文章末尾import numpy as npfrom numpy import genfromtxtfrom sklearn import linear_model# 读入数据 data = genfromtxt(r"longley.csv",delimiter=',')# 切分数据x_data = data[1:,2:]y_data = data[1:,1]# 创建模型model = linear_model.LassoCV()model.fit(x_data,原创 2021-02-10 22:51:54 · 242 阅读 · 1 评论 -
【机器学习】监督学习--(回归)多项式回归
注:数据集在文章末尾多项式回归 —— sklearnimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.linear_model import LinearRegression# 载入数据data = np.genfromtxt("job.csv", delimiter=",")x_data = data[1:,1]原创 2021-02-10 22:32:56 · 304 阅读 · 2 评论 -
【机器学习】集成学习--Stacking
1. 概述 Stacking 就是当用初始训练数据学习出若干个基学习器后,将这几个学习器的预测结果作为新的训练集,来学习一个新的学习器。Stacking 的基础层通常包括不同的学习算法,因此stacking ensemble往往是异构的。2. 算法流程1)过程1-3是训练出来个体学习器,也就是初级学习器。过程5-9是使用训练出来的个体学习器来得预测的结果,这个预测的结果当做次级学习器的训练集。2)过程5-9是使用原创 2021-02-23 01:14:11 · 1361 阅读 · 1 评论 -
【机器学习】集成学习--随机森林(Random Forest)
1. 概述RF = 决策树 + Bagging + 随机属性选择2. 算法流程样本的随机:从样本集中用bagging的方式,随机选择n个样本。特征的随机:从所有属性d中随机选择k个属性(k<d),然后从k个属性中选择最佳分割属性作为节点建立CART决策树。重复以上两个步骤m次,建立m课CART决策树。这m课CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类。3. 代码实现注:数据集在文章末尾from sklearn import treefrom skl原创 2021-02-22 23:26:15 · 380 阅读 · 1 评论 -
【机器学习】无监督学习--(降维)主成分分析PCA
注:数据集在文章末尾PCA简单例子import numpy as npimport matplotlib.pyplot as plt# 载入数据data = np.genfromtxt("data.csv", delimiter=",")x_data = data[:,0]y_data = data[:,1]plt.scatter(x_data,y_data)plt.show()print(x_data.shape)输出:# 数据中心化def zeroMean(dataMat原创 2021-02-22 18:21:00 · 341 阅读 · 0 评论 -
【机器学习】无监督学习--(聚类)DBSCAN
1. DBSCAN概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于密度的聚类算法,本算法将具有足够高密度的区域划分为簇,并可以发现任何形状的聚类。● ε邻域:给定对象半径ε内的区域成为该对象的ε邻域● 核心对象:如果给定ε邻域内的样本点数大于等于Minpoints,则该对象为核心对象。● 直接密度可达:给定一个对象集合原创 2021-02-16 21:34:51 · 582 阅读 · 0 评论 -
【机器学习】无监督学习--(聚类)K-Means肘部法则
1. K-Means算法缺点1)对k个初始质心的选择比较敏感,容易陷入局部最小值。如下面这两种情况。K-Means也是收敛了,只是收敛到了局部最小值。2)k值得选择是用户指定的,不同的k得到的结果会有挺大的不同,如下图所示,左边是k=3的结果,蓝色的簇太稀疏了,蓝色的簇应该可以再划分成两个簇。右边的是k=5的结果,红色和蓝色的簇应该合并为一个簇3)存在局限性,如下面这种非球状的数据分布就搞不定了。4)数据量比较大的时候,收敛会比较慢。2. K-Means算法优化1)使用多次的随机初始化,计原创 2021-02-16 20:28:53 · 8861 阅读 · 1 评论 -
【机器学习】监督学习--(分类)支持向量机SVM①
SVM简单例子from sklearn import svmx = [[3, 3], [4, 3], [1, 1]]y = [1, 1, -1]model = svm.SVC(kernel='linear')model.fit(x, y)# 打印支持向量print(model.support_vectors_)# 第2和第0个点是支持向量print(model.support_)# 有几个支持向量print(model.n_support_)print(model.predic原创 2021-02-16 01:38:34 · 236 阅读 · 0 评论 -
【机器学习】监督学习--(分类)非线性逻辑回归
注:数据集放在文章末尾(1)非线性逻辑回归 —— 梯度下降法import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import preprocessingfrom sklearn.preprocessing import PolynomialFeatures# 数据是否需要标准化scale = False# 载入数据da原创 2021-02-11 12:31:13 · 546 阅读 · 2 评论 -
【机器学习】集成学习--Bagging
1. 概述 Bagging也叫做bootstrap aggregating,是在原始数据集选择S次后得到S个新数据集的一种技术。是一种有放回抽样。如图:2. 示例3. 算法流程 Bagging是投票式算法,如图所示:首先使用Bootstrap产生k不同的训练数据集,然后再分别基于这些训练数据集得到多个基础分类器,最后通过对基础分类器原创 2021-02-22 23:05:48 · 356 阅读 · 0 评论 -
【机器学习】监督学习--(分类)支持向量机SVM②
注:数据集在文章末尾(1)SVM–线性分类import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm# 创建40个点x_data = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]y_data = [0]*20 +[1]*20plt.scatter(x_data[:,0],x_data[:,1],c=y_da原创 2021-02-16 12:06:17 · 215 阅读 · 0 评论 -
【机器学习】无监督学习--(聚类)Mini Batch K-Means
1. Mini Batch K-Means概述 Mini-Batch-K-MEANS算法是K-Means算法的变种,采用小批次量的数据子集减少计算时间。这里所谓的小批量是指每次训练算法时所随机抽取的数据子集,采用这些随机产生的子集进行训练算法,大大减小了计算时间,结果一般只略差于标准算法。2. 算法步骤1)从数据集中随机抽取一些数据形成小批量,把它们分配给最近的质心。2)更新质心:与K均值算法相比,数据的过呢更新是在原创 2021-02-16 16:51:52 · 2084 阅读 · 2 评论 -
【机器学习】监督学习--(分类)决策树①
注:数据集在文章末尾(1)决策树简单例子from sklearn.feature_extraction import DictVectorizerfrom sklearn import treefrom sklearn import preprocessingimport csv# 读入数据Dtree = open(r'AllElectronics.csv', 'r')reader = csv.reader(Dtree)# 获取第一行数据headers = reader.__next原创 2021-02-11 17:30:24 · 359 阅读 · 2 评论 -
【机器学习】集成学习--AdaBoost
1. 概述 AdaBoost是英文“Adaptive Boosting”(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。将学习器的重点放在“容易”出错的样本上。可以提升学习器的性能。2. 示例&原创 2021-02-23 00:31:06 · 166 阅读 · 0 评论 -
【机器学习】无监督学习--(聚类)K-Means
1. K-MEANS概述 算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一个聚类中的对象相似度较高,而不同聚类中的对象相似度较小。注:数据集在文章末尾2. 算法思想 以空间k个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。3. 算法流程原创 2021-02-16 15:53:56 · 257 阅读 · 1 评论