![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ML&DL
文章平均质量分 80
机器学习与深度学习,自主学习笔记
王亿亿
做一个简简单单的大厂梦。
展开
-
【TF】《21个项目玩转深度学习———基于TensorFlow的实践详解》环境配置
《21个项目玩转深度学习-基于TensorFLow的实践》windows环境原创 2022-06-14 15:59:26 · 430 阅读 · 0 评论 -
【李宏毅2022机器学习】笔记三:Logistic Regression
用作分类问题的逻辑回归模型原创 2022-03-18 18:07:32 · 1643 阅读 · 2 评论 -
【李宏毅2022机器学习】笔记二:Classification分类器(Gaussian,Maximum Likelihood)
基于高斯分布的分类器原创 2022-03-17 16:06:00 · 1157 阅读 · 0 评论 -
【李宏毅2022机器学习】笔记一:ML/DL框架;反向传播;回归;Pytorch使用
李宏毅2021/2022春机器学习课程目前进度P15Regression原创 2022-03-16 16:43:42 · 1493 阅读 · 0 评论 -
【sklearn】菜菜的机器学习-决策树案例(分类树、回归树)
实例:分类树在合成数集上的表现实例:一维回归图像的绘制原创 2021-11-27 15:46:14 · 988 阅读 · 0 评论 -
【Pytorch】【PULSE】基于StyleGan的高分辨率图像生成器
因为研究项目是高分辨率图像生成器,所以我们还是从github学习已有的代码(主要还是从别的博主的博客借鉴了很多!)应该所有人都有体会,就是别人能运行的代码!我绝对要疯狂Debug。希望这次能快点成功噢。文章目录学习资料环境配置报错参考解决torch.cuda.is_available()一直返回False的玄学方法之一[AttributeError: 'Tensor' object has no attribute 'ndim'](https://blog.csdn.net/qq_40178291/art原创 2021-03-20 14:24:49 · 1059 阅读 · 2 评论 -
【深度学习】(二)神经网络:激活函数、MNIST
感知机需要人为设定符合预期输入输出的权重。神经网络可以自动地从数据中心学习到合适的参数。质朴感知机:指单层网络,激活函数使用了阶跃函数的模型。多层感知机:指神经网络,使用平滑的激活函数的多层网络。激活函数激活函数是将输入信号的总和转换为输出信号的函数。y = h(∑xi*wi)阶跃函数阶跃函数以阈值为界,一旦输入超过阈值,就切换输出。感知机中流动的是0或1的二元信号。import numpy as npimport matplotlib.pyplot as plt'''def st原创 2020-07-11 19:24:21 · 1320 阅读 · 0 评论 -
【StyleGan】环境搭建tensorflow-gpu,运行stylegan
StyleGan的学习摸摸索索着开始了,大部分参照别的博主大佬。会附上所有的学习链接。环境安装WIN10+CUDA10 +CUDNN7.5+ TENSORFLOW-GPU1.13.1 + python3.7 运行NVIDIA STYLEGAN 的安装过程和踩坑实录学习http://www.seeprettyface.com/research_notes.html...原创 2020-11-22 22:37:34 · 944 阅读 · 0 评论 -
【深度学习】(三)神经网络中的学习:损失函数、梯度下降
“学习”指从训练数据中自动获取最优权重参数的过程。数据处理感知机收敛定理:通过有限次数的学习,线性可分问题是可解的。非线性问题不能通过自动学习来解决。机器学习深度学习人为设计从图像转换为向量时使用的特征量;在用机器学习技术学习这些特征量的模式不存在人为介入,全部都由机器来学习对于不同的问题,必须使用适合的特征量(端到端机器学习)与处理无关,从输入的原始数据中获得输出的目标结果。特征量指可以从输入数据中准确地提取本质数据的转换器。机器学习中,将数据分为训练数据/监督原创 2020-07-13 09:40:36 · 1651 阅读 · 0 评论 -
【深度学习】(一)感知机:与门、与或门、或门、异或门
感知机(perceptron)是具有输入和输出的算法。给定一个输入以后,将输出一个既定的值。类似于用编程实现数字逻辑中的电路。感知机将权重和偏置设定为参数。感知机会计算输入信号和权重的乘积,然后加上偏置,如果这个值大于0则输出1,否则输出0。b+w1x1+w2x2可以看作一位数组做得矩阵乘积[x1,x2]*[w1,w2]+b权重ω是控制输入信号的重要性的参数,偏置b是调整神经元被激活的容易程度(输出信号为1的程度)的参数。【阈值θ=-b】感知机的实现单层感知机单层感知机只能表示线性空间。(局限原创 2020-07-08 17:02:18 · 4394 阅读 · 1 评论 -
【机器学习】机器学习概览:学习系统的种类,机器学习的主要挑战
机器学习是研究如何让计算机不需要明确的程序也能具备学习能力。机器学习非常利于:不存在已知算法解决方案的复杂问题,需要大量手动调整或是规则列表超长的问题,创建可以适应环境波动的系统,以及帮助人类学习(比如数据挖掘)。1 机器学习系统的种类种类划分标准之间并不排斥,可以任意组合。1.1 是否在人类监督下训练监督使学习:分类任务(垃圾邮件过滤器);回归任务(预测汽车价格)无监督式学习:聚类算法(访客分组);可视化和降维(特征提取);异常检测(信用卡防诈骗);关联学习(超市摆货规则)半监督式学习:有原创 2020-09-05 09:52:56 · 240 阅读 · 0 评论 -
【未完成】【机器学习】(二十五)处理文本数据:电影评论的情感分析(IMDb数据集)
数据有分类特征、连续特征,同样有文本特征。文本数据通常被表示为由字符组成的字符串,但并非所有字符串特征都被当作文本处理。用字符串表示的数据类型:分类数据可以在语义上映射为类别的自由字符串:手动输入值对应固定类别结构化字符串数据:手动输入值不与固定类别对应,但是存在一些内在结构,比如地址、人名。文本数据:格式自由,由短语或句子组成,例如聊天记录、评论。文本分析可应用于信息检索(IR)和自然语言处理(NLP),数据集通常称为语料库,每个由单个文本表示的数据点被称为文档。应用:电影评论的情感分原创 2020-08-19 16:47:26 · 688 阅读 · 0 评论 -
【机器学习】(二十四)算法链与管道:网格搜索中应用Pipeline类;通用管道接口;利用网格搜索选择模型
机器学习算法,首先要对数据进行缩放,然后手动合并特征,再利用无监督机器学习来学习特征。算法链:将许多不同的处理步骤和机器学习模型链接在一起。Pipeline类可以将多个处理步骤合并为单个scikit-learn估计器,类本身具有fit、predict、score方法。Pipeline类最常见的用例是将预处理步骤(比如数据缩放)与一个监督模型(比如分类器)链接在一起。管道对象由一个步骤列表组成。每个步骤都是一个元组,包含一个自选定的字符串代表名称+一个估计器的实例。利用管道,减少了“预处理+分类”过程原创 2020-08-18 20:02:21 · 817 阅读 · 0 评论 -
【机器学习】(二十三)评估指标:Dummy分类器;混淆矩阵;AUC指标
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-08-04 22:04:38 · 4799 阅读 · 0 评论 -
【机器学习】(二十二)模型调参——网格搜索
模型的重要参数:提供泛化性能的参数网格搜索:尝试所有重要参数的可能组合简单的网格搜索:将数据集划分为用于构建模型的训练集、用于选择模型参数的验证集/开发集、用于评估所选参数性能的测试集。使用嵌套循环对每种参数组合都训练一个训练集上模型,找到在验证集分数最高的那一组参数,最后经过测试集得到模型精度。带交叉验证的网格搜索带交叉验证的网格搜索:用交叉验证来评估每种参数组合的性能。在SVM模型中使用交叉验证调参:from sklearn.svm import SVCfrom sklearn.model原创 2020-08-01 17:56:50 · 851 阅读 · 0 评论 -
【机器学习】(二十一)模型评估——交叉检验:k折交叉检验,分层k折交叉验证,留一法交叉检验,打乱划分交叉验证,分组交叉验证
之前使用train_test_split函数将数据集随机划分为训练集和测试集,然后使用score方法评估监督学习模型。随机划分时,如果恰好很不幸不容易分类的数据集都在测试集,会得到一个不切实际的低分。于是使用交叉检验,每个分类样例都会出现在测试集和训练集。交叉检验的是评估给定算法在特定数据集上训练后的泛化性能好坏的统计学方法。不会返回一个模型,不是一种构建可应用于新数据的模型的方法。标准k折交叉检验:回归问题默认使用。根据用户指定的k划分数据,经历k次训练测试,每次一折当测试集其它的是训练集。分层原创 2020-07-31 20:13:04 · 1504 阅读 · 0 评论 -
【机器学习】(二十)数据表示与特征工程:One-Hot编码(adult数据集),特征分箱,多项式回归,自动化特征选择
特征工程:如何找到最佳的数据表示。连续特征:由一系列浮点数组成的数组描述。分类特征/离散特征:以不连续的方式变化描述一件产品的属性。分类变量分类特征是一系列固定的可能取值(而不是一个范围),表示的是定性属性(而不是数量)。数据的输入特征,当这个特征是数据时,一系列计算公式才有意义。于是需要换一种方式来表示数据。One-Hot编码/N取一编码/虚拟变量通常将一个分类特征的k个可能取值编码为k-1个特征,新特征取值为0/1(都为0表示最后一个可能取值)将数据转换为分类变量的one-hot编码有两种原创 2020-07-28 21:56:41 · 2163 阅读 · 0 评论 -
【机器学习】(十九)聚类:k均值聚类、凝聚聚类、DBSCAN,算法评估
聚类:将数据划分成组的任务。这些组叫簇。k均值聚类(KMeans)迭代算法:将每个数据点分配给最近的簇中心->簇中心修改为所分配点的平均值->循环前两步,直至簇中心不再变化。import matplotlib.pyplot as pltfrom sklearn.datasets import make_moonsfrom sklearn.cluster import KMeans# two_moons数据集x, y = make_moons(n_samples=200, noi原创 2020-07-26 23:04:37 · 1294 阅读 · 0 评论 -
【机器学习】(十八)用t-SNE进行流行学习:手写数字分类
PCA是用于变换数据的首选方法,也可以进行可视化,但它的性质(先旋转然后减少方向)限制了有效性。流行学习算法:是一类用于可视化的算法,它允许进行更复杂的映射,通常也可以给出更好的可视化。t-SNE算法是其中一种。t-SNE算法:找到数据的一种二维表示,尽可能保持数据点之间的距离(相同的靠近,不同的远离,分堆)。这种方法不知道类别标签,是完全无监督的。但是它只能变换用于训练的数据,不支持新数据(没有transform方法),即不能用于测试集。具有调节参数(perplexity、early_exaggera原创 2020-07-26 18:30:14 · 1085 阅读 · 0 评论 -
【机器学习】(十七)非负矩阵分解NMF:人脸图像特征提取、用特征排序;还原混合信号
非负矩阵分解(NMF)是一种无监督学习算法,目的在于提取有用的特征(可以识别出组合成数据的原始分量),也可以用于降维,通常不用于对数据进行重建或者编码。与PCA相同,NMF将每个数据点写成一些分量的加权求和,并且分量和系数都大于0,只能适用于每个特征都是非负的数据(正负号实际上是任意的)。两个分量的NMF:分量指向边界,所有的数据点都可以写成这两个分量的正数组合。一个分量的NMF:分量指向平均值,指向这里可以对数据做出最好的解释。在NMF中,不存在“第一非负分量”,所有分量地位平等,减少分量个数会原创 2020-07-25 12:24:24 · 2713 阅读 · 0 评论 -
【机器学习】(十六)主成分分析PCA:高维数据可视化、特征提取
主成分分析(PCA)是一种旋转数据集的方法,旋转后的特征在统计上不相关。用PCA做数据变换首先,算法在原始数据点集中,找到方差最大的方向(包含最多信息),标记为‘成分1’。->找到与“成分1”正交(成直角)且包含最多信息的方向,标记为“成分2”。利用这一过程找到的方向被称为主成分,一般主成分个数和原始特征数相同。从数据中减去平均值,是的变换后的数据以0为中心->旋转数据:使第一主成分与x轴平行,第二主成分与y轴平行。两坐标轴是不相关的,除了对角线,相关矩阵全为0。仅保留一部分主成分(第原创 2020-07-23 23:10:06 · 2700 阅读 · 0 评论 -
【机器学习】(十五)预处理和缩放:StandardScaler、RobustScaler、MinMaxScalar、Normalizer
预处理:对数据的一种简单的按特征的缩放和移动。不同类型的预处理这是一个有两个特征(x/y)的二分类数据集,四种预处理方法:StandardScaler:确保每个特征的平均值为0,方差为1。RobustScaler:使用中位数和四分位数(四分之一),确保每个特征的统计属性都位于同一范围。MinMaxScalar:移动数据,使所有特征都刚好位于0-1之间。Normalizer:对每个数据点进行缩放,使得特征向量的欧式长度等于1。应用数据变换MinMaxScaler缩放from sklea原创 2020-07-23 20:39:58 · 2629 阅读 · 0 评论 -
【机器学习】(十四)无监督学习算法的开始
在无监督学习中,学习算法只有输入数据(一般用不包含任何标签信息的数据),并需要从这些数据中提取知识。结果没有正确答案,不像监督学习可以计算精度,评估无监督算法结果的唯一方法是人工检查。无监督学习的类型数据集变换算法:创建数据集新的表示的算法,使其更容易被理解。可以应用在降维,用较少的特征就可以概括其重要特征(可视化数据降成二维);还可以用在主题提取,找到构成数据的各个组成部分(社交网络上的讨论话题)。聚类算法:将数据划分成不同的组,每个组包含相似的物象(照片分类)。无监督算法的应用用于探索性原创 2020-07-23 16:32:33 · 129 阅读 · 0 评论 -
【机器学习】(十三)监督学习算法小结:适用情况
机器学习模型适用情况最近邻适用于小型数据集线性模型首选,适用非常大的数据集、高维数据集朴素贝叶斯只用于分类问题,适用非常大的数据集、高维数据集决策树不需要数据缩放,速度快随机森林不需要数据缩放,不适用高维稀疏数据梯度提升决策树比随机森林需要更多参数调节支持向量机适用特征含义相似的中等大小的数据集,需要数据缩放神经网络适用于大型数据集...原创 2020-07-21 18:08:24 · 322 阅读 · 0 评论 -
【机器学习】(十二)分类器的不确定度估计
分类器:不确定度估计分类器不仅能够给出测试点属于哪一个类别,还包括它对这个预测的置信程度。scikit-learn提供了两个函数可以用于获取分类器的不确定度估计函数:(大部分分类器至少含有其中一个)决策函数decision_function:二分类问题返回形状为(n_samples, ),为每个样本返回一个浮点数。正值表示对正类(classes_[1])的偏好,负值对应其反类(classes_[0])。多分类问题返回形状(n_samples,n_classes),每一列对用每个类别的确定度分数(浮原创 2020-07-21 17:58:25 · 561 阅读 · 0 评论 -
【机器学习】(十一)多层感知机MLP
可以用于回归和分类问题的多层感知机(MLP),是深度学习的一种算法,被称为(普通)前馈神经网络。神经网络模型MLP被视为广义的线性模型,多次重复计算加权求和的过程,并将激活函数用于加权求和,得到输出。激活函数(通常为非线性函数):【深度学习】(二)神经网络:激活函数、MNIST校正非线性函数(relu):截断小于0的值正切双曲线函数(tanh):输入较小为-1,较大时为+1line = np.linspace(-3, 3, 1000)plt.plot(line, np.tanh(line),原创 2020-07-20 23:34:07 · 1889 阅读 · 0 评论 -
【机器学习】(十)核支持向量机SVM:make_blobs方法,hstack() 函数
SVM(核支持向量机)是可以推广到更复杂模型的扩展,可以同时用于分类(SVC)和回归(SVR)。线性模型与非线性特征当线性模型无法将低维空间中的类别分割,可以增添更多特征(输入特征的交互项或多项式),扩展为高维空间。x/y->x/y/z(y^2)import matplotlib.pyplot as pltimport mglearnfrom sklearn.datasets import make_blobsfrom sklearn.svm import LinearSVCx, y原创 2020-07-19 22:58:05 · 490 阅读 · 0 评论 -
【机器学习】(九)决策树集成:随机森林、梯度提升回归树
集成是合并多个学习模型来构建更强大模型的方法。随机森林随机森林是解决决策树经常对训练数据过拟合的一种方法,是许多决策树的集合,每棵树和其他树略有不同,对这些树的结果取平均值。在two-moons数据集应用RandomForestClassifier树的个数(n_eastimators参数决定)->对每棵树:自取采样(随机抽取与原数据集元素相同个数但是内容有重复的数据集)->对每次测试只选择其中一边继续测试(深度由max_features参数决定)为了每棵树差异不会过大,更好拟合,每棵树原创 2020-07-18 23:25:31 · 1523 阅读 · 0 评论 -
【机器学习】(八)决策树:控制决策树复杂度、树的特征重要性、可视化
决策树决策树是广泛运用于分类和回归任务的模型。它从一层层的if/else问题中进行学习,并得出结论。构造决策树scilit-learn在DecisionTreeRegressor类和DecisionTreeClassifier类中实现决策树。from sklearn.tree import DecisionTreeClassifiertree = DecisionTreeClassifier(random_state=0).fit(x_train, y_train)二叉树:根节点是问题(测试)原创 2020-07-18 14:01:37 · 5069 阅读 · 0 评论 -
【机器学习】(七)朴素贝叶斯分类器
朴素贝斯分类器是类似线性模型的一种分类器,通过单独查看每个特征来学习参数,并从每个特征中搜集简单的类别统计数据。训练速度更快,泛化能力略差一些。scikit-learn中的朴素贝叶斯分类器:GaussianNBBernoulliNBMultinomialNB输入数据任意连续数据假定为二分类数据(只有0/1)计数数据(比如单词在句子中出现的次数)计算结果每个类别中每个特征的平均值和标准差每个特征(列)中不为0的元素个数每个特征的平均值应用高维数据稀疏计数原创 2020-07-18 11:25:11 · 593 阅读 · 0 评论 -
【机器学习】(六)线性模型:线性回归、岭回归、Lasso;Logistic回归、线性SVM
线性模型利用输入特征的线性函数(一次函数)进行预测。线性函数有两个参数:w[n]斜率(每个特征的系数),by轴偏移量。输出是预测结果。可视化:mglearn.plots.plot_linear_regression_wave()对单一特征预测结果是一条直线。2个特征是一个平面,更高维度(更多特征)时是一个超平面。回归问题线性回归OLS:LinearRegression线性回归/普通最小二乘法/OLS,寻找参数w、b是的训练集预测值与真实的回归目标值y之间的均方差误差(差的平方和除以样本数)最小原创 2020-07-18 00:19:39 · 2893 阅读 · 0 评论 -
【机器学习】(五)k近邻算法
k-NN算法,构建模型只需要保存训练数据集,对新数据点做出预测,算法会在数据集中找到最近的数据点(最近邻)。k近邻分类可视化:mglearn.plots.plot_knn_classification(n_neighbors=3)在forge数据集上的应用import mglearnimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split# 生成数据集X, y = mglearn原创 2020-07-17 00:17:50 · 456 阅读 · 0 评论 -
【机器学习】(四)一些数据集:forge、wave、cancer、bosten、two-moons
forge数据集可以用于模拟二分类问题,数据集包含26个数据点和2个特征,两种输出。import mglearnimport matplotlib.pyplot as plt# 生成数据集X, y = mglearn.datasets.make_forge() # 输入,目标# 数据集绘图mglearn.discrete_scatter(X[:, 0], X[:, 1], y) # 第一个特征为x轴,第二特征为y轴,不同的点是输出yplt.legend(['Class 0', 'Clas原创 2020-07-16 21:15:10 · 3214 阅读 · 5 评论 -
【机器学习】(三)鸢尾花分类
鸢尾花分类是一个三分类的监督学习问题。目标:构建一个机器学习模型,可以从已知的鸢尾花测量数据中进行学习,从而能够预测新鸢尾花的品种。使用k临近算法。#!/usr/bin/env python# coding: utf-8from sklearn.datasets import load_iris# 测试数据iris_dataset = load_iris() # 加载数据,返回一个Bunch对象,类似字典print("Keys of iris_dataset:\n{}",format(ir原创 2020-07-16 11:37:58 · 2167 阅读 · 0 评论 -
【机器学习】(二)监督学习算法的开始
分类监督机器学习主要分为两类:分类问题:预测类别标签,选择题。可以有,两个选项(二分类),多分类。二分类中可以分为:正类:代表研究对象;反类:主观判断正类对立面。回归问题:预测一个连续值浮点数,填空题。评判模型泛化能力:能够对没见过的数据做出准确预测。过拟合:在训练集上表现很好、但不能泛化到新数据上的模型。欠拟合:在训练集上表现就很差。欠拟合->最佳模型->过拟合...原创 2020-07-15 22:44:37 · 149 阅读 · 0 评论 -
【机器学习】(一)jupter notebook、初识数据的步骤
jupter notebook都是通过cmd命令行打开。安装:pip install jupyter使用:jupyter notebookjupyter notebook的安装与使用Python·Jupyter Notebook各种使用方法记录·持续更新原创 2020-07-15 22:27:59 · 371 阅读 · 0 评论