python机器学习
文章平均质量分 94
winycg
问题可联系QQ:1241981936
展开
-
深度度量学习(Deep Metric Learning)函数求导公式
表示经过L2归一化之后的向量,长度为1。原创 2022-11-13 21:45:45 · 716 阅读 · 0 评论 -
Softmax函数和交叉熵Cross-entropy以及KL散度求导
参考链接:https://blog.csdn.net/qian99/article/details/78046329对一个分类神经网络fff,输出为z=f(x;θ),z=[z0,z1,⋯ ,zC−1]z=f(x;\theta),z=[z_{0},z_{1},\cdots,z_{C-1}]z=f(x;θ),z=[z0,z1,⋯,zC−1],zzz为logits,其中类别数量为CCC,yyy为xxx的one-hot标签。通过softmax归一化来得到概率:pi=expzi∑jexpzjp_{i}=原创 2020-06-22 10:08:07 · 3077 阅读 · 0 评论 -
势函数
可以用势函数来确定非线性的判别函数。基本思想:假设需要划分属于ω1\omega_{1}ω1和ω2\omega_{2}ω2的模式样本。把属于ω1\omega_{1}ω1的点比拟为能源点,在该点上电位达到峰值,随着与该点距离的增大,电位分布减小,即把样本xk\mathbf x_{k}xk附近空间上的x\mathbf{x}x电位分布看成一个势函数k(x,xk)k(\mathbf{x,x_{k...原创 2018-10-22 20:19:09 · 12878 阅读 · 0 评论 -
矩阵分解SVD和NMF
矩阵的秩对于一个M×NM \times NM×N的矩阵A,其秩R(A)为线性无关的行向量(列向量)的数量。在空间中,秩表示矩阵的行向量或列向量所张成的空间的维度。...原创 2018-10-11 01:05:54 · 4145 阅读 · 0 评论 -
K-Means聚类
给定样本集D={x1,x2,...,xm}D=\{x_{1},x_{2},...,x_{m}\}D={x1,x2,...,xm},k均值算法针对聚类所得到的簇划分C={C1,C2,...,Ck}C=\{C_{1},C_{2},...,C_{k}\}C={C1,C2,...,Ck}最小化平方误差(SSE,sum of squared error):E=∑i=1k∑x∈ci∥x−μi∥2E...原创 2018-10-10 22:45:00 · 609 阅读 · 0 评论 -
感知算法
import numpy as npx1 = [np.array([0, 0]), np.array([0, 1])]x2 = [np.array([1, 0]), np.array([1, 1])]for i in range(len(x1)): x1[i] = np.hstack((x1[i], [1]))for i in range(len(x2)): x2[i] ...原创 2018-10-15 20:21:24 · 6573 阅读 · 0 评论 -
LDA(Fisher)线性判别分析
该方法思想比较简单:给定训练集样例,设法将样例投影到一维的直线上,使得同类样例的投影点尽可能接近和密集(即希望类内离散度越小越好),异类投影点尽可能远离(即希望两类的均值点之差越小越好)两类数据点的类心分别是μ1=1∣C1∣∑x∈C1x和μ2=1∣C2∣∑x∈C2x\mu_{1}=\frac{1}{|C_{1}|}\sum_{x\in C_{1}}x和\mu_{2}=\frac{1}{|C_{...原创 2018-10-14 00:04:02 · 12795 阅读 · 11 评论 -
自适应提升(Adaptive Boosting, AdaBoost)
在boosting中,集成分类器包含多个非常简单的成员分类器,这些分类器性能稍强于随机猜测(rough rules of thumb),被称为弱学习机。典型的弱分类器是单层决策树。Adaboost使用整个训练集来训练弱学习机,训练样本在每次迭代中都会被赋予一个新的权重,在上一个学习机错误的基础上进行学习进而构建一个更加强大的分类器。算法伪代码流程如下:输入:训练数据D={(xi,yi)}i...原创 2018-09-25 23:22:13 · 1344 阅读 · 0 评论 -
支持向量机(Support Vector Machine, SVM)
感知算法线性分类器:f(x;w,b)=⟨w,x⟩+bf({\rm{x}};{\rm{w}},b)=\left \langle {\rm{w}},{\rm{x}} \right \rangle+bf(x;w,b)=⟨w,x⟩+b,决策:sgn[f(x;w,b)]sgn[{f({\rm{x}};{\rm{w}},b)}]sgn[f(x;w,b)]线性感知机(Perception)算法:输入:训练...原创 2018-09-24 17:26:45 · 491 阅读 · 0 评论 -
决策树与随机森林
最大信息增益熵(entropy):随机变量XXX,其取值为{P(X=V1)=P1,...,P(X=VC)=PC}\{P(X=V_{1})=P_{1},...,P(X=V_{C})=P_{C}\}{P(X=V1)=P1,...,P(X=VC)=PC},XXX的熵为H(X)=−∑i=1CP(i)log(i)H(X)=-\sum_{i=1}^{C}P(i)\log(i)H(X)=−i=1∑...原创 2018-09-18 20:11:03 · 1045 阅读 · 0 评论 -
梯度提升树(GBDT)
提升树模型提升树是以分类数或回归树为基本分类器的提升方法。提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法,以决策树为基函数的提升方法为提升树(boosting tree)。基本分类器x<vx<vx<v或x>vx&a原创 2018-10-28 16:17:27 · 3914 阅读 · 0 评论 -
贝叶斯概率决策与分类器
贝叶斯决策条件概率:P(A∣B)=P(AB)P(B)P(A|B)=\frac{P(AB)}{P(B)}P(A∣B)=P(B)P(AB)乘法定理:P(AB)=P(A∣B)P(B)=P(B∣A)P(A)P(AB)=P(A|B)P(B)=P(B|A)P(A)P(AB)=P(A∣B)P(B)=P(B∣A)P(A)全概公式:B1∪B1∪...Bn=Ω,且Bi∩Bj=空集,则P(A)=∑i=1nP(A...原创 2018-09-20 23:26:11 · 766 阅读 · 0 评论 -
线性判别函数的多分类情况
多类情况1用线性判别函数将属于ωi\omega_{i}ωi类的模式与不属于ωi\omega_{i}ωi类的模式分开。判别函数为:di(x)=wiTx={>0 if x∈ωi≤0, if x∉ωii=1,2,...,Md_{i}(x)=w_{i}^{T}x=\left\{\begin{matrix}>0 \ if\ x\in...原创 2018-12-26 00:54:13 · 4445 阅读 · 0 评论 -
多层感知机BP算法推导
前向计算含有数据输入层,1个以上隐藏层,1个输出层。各层神经元之间全连接,同一层的神经元之间无连接。在图中,z(l)=W(l)⋅a(l−1)+b(l)a(l)=f(l)(z(l))z^{(l)}=W^{(l)}\cdot a^{(l-1)}+b^{(l)}\\a^{(l)}=f^{(l)}(z^{(l)})z(l)=W(l)⋅a(l−1)+b(l)a(l)=f(l)(z(l))其中f(...原创 2019-01-03 18:52:38 · 2918 阅读 · 0 评论 -
信息论模型-熵问题和互信量
熵(entropy)的定义:(1)离散熵。 离散型随机变量XXX,XXX的熵为H(X)=−∑xP(x)log(P(x))H(X)=-\sum_{x}P(x)\log(P(x))H(X)=−x∑P(x)log(P(x))熵的意义在于衡量了变量的不确定性。熵越大,不确定性越大,包含的信息量越大。太阳从东边出来的可能性为1,从西边为0,此时的熵为1∗log(11)+0∗log(10)=01*...原创 2018-12-10 17:43:16 · 1042 阅读 · 0 评论 -
PCA与t-SNE降维数据
主成分分析(Principal Component Analysis,简称PCA ),是常用的降维方法。PCA是一种线性的降维方法,线性变换的直观表示为:其中,x\bm{x}x是原始的样本,y\bm{y}y是降维后的样本,W\mathbf{W}W是转换矩阵。PCA的主要目标就是求解转换矩阵,我们需要预先定义目标函数,在PCA中,有以下两个优化目标:(1)最小化重构误差(2)最大化投影后的方...原创 2018-11-24 17:57:58 · 4564 阅读 · 0 评论 -
EM算法和高斯混合聚类
EM算法引言在现实应用中,概率模型有时既含有观测变量(observable variable),又含有不能被观测到的变量,该变量称为隐变量(latent variable)。如果给定数据全都是观测变量,那么可以使用最大似然估计求解模型参数,但是在含有隐变量的情况下无法求解。EM算法就是用于求解在训练样本具有隐变量的情况下概率模型参数的最大似然估计。EM算法是对两种未知参数(隐变量分布和模型参数)...原创 2018-11-15 21:36:49 · 1922 阅读 · 0 评论 -
集成学习-多样性的度量和增强
多样性度量在集成学习中,我们希望分类器具有多样性。多样性度量(diversity measure)是用于度量集成个体分类器的多样性。常规的做法是度量两个分类器的相似性,通常有如下指标。给定数据集D={(xi,yi)}1mD=\{(\bm{x}_{i},y_{i})\}_{1}^{m}D={(xi,yi)}1m,对二分类任务,yi∈{−1,+1}y_{i}\in \{-1,+1\}yi∈...原创 2018-11-14 00:22:40 · 4895 阅读 · 1 评论 -
集成学习stacking
参考链接:https://blog.csdn.net/willduan1/article/details/73618677stacking使用mlxtend实现stacking参考链接:http://rasbt.github.io/mlxtend/mlxtend帮助文档:https://sebastianraschka.com/pdf/software/mlxtend-latest.pdf...原创 2018-11-13 17:25:05 · 2757 阅读 · 1 评论 -
使用回归分析预测连续型变量
线性回归模型线性函数的定义如下:h(x)=w1x1+w2x2+...+wdxd+b=wTx+bh(\bm{x})=w_{1}x_{1}+w_{2}x_{2}+...+w_{d}x_{d}+b=\bm{w}^{T}\bm{x}+bh(x)=w1x1+w2x2+...+wdxd+b=wTx+b给定数据集D={(xi,yi)}1ND=\{(\bm{x}_{i},y_{i})\}_{1}...原创 2018-11-08 00:17:13 · 6822 阅读 · 0 评论 -
集成学习
集成方法(Ensemable method)的目标是:将不同的分类器组成一个元分类器,与但个分类器相比,元分类器具有更好的泛化性能。通常使用多数投票的原则,将大多数分类器预测的结果作为最终的类标,即y^=mode(C1(x),C2(x),⋯,Cm(x)),mode为众数y^=mode(C1(x),C2(x),⋯,Cm(x)),mode为众数\hat{y}=mode{(C_{1}(x),C_{2}(...原创 2018-05-23 16:53:05 · 2666 阅读 · 0 评论 -
python遗传算法应用(句子配对和TSP问题)
在不了解遗传算法的基本python代码之前,请参考博客:http://blog.csdn.net/winycg/article/details/78917528句子配对应用针对目标语句:'Hello,World!'种群产生:以ASCII码在[32, 126]的范围为种群基因产生种群适应度计算:种群DNA和目标DNA相似的基因即为1,不相同即为0,计算和为适应度变异:对于要变异的原创 2018-01-07 22:31:16 · 2026 阅读 · 0 评论 -
神经进化
梯度下降VS神经进化在梯度下降中, 我们需要的只是梯度, 让这个神经网络的参数滑到梯度躺平的地方就可以, 因为梯度指明了一个优化的方向, 所以如果是监督学习, 优化起来会非常快。 而神经网络的进化, 使用的却是另一种手段,用初始的点创造出很多新的点, 然后通过新的点来确定下一代的起点在哪. 这样的循环再不断地继续,可以想象, 如果在监督学习中, 需要不断产生非常多的新网络, 测试新的网络, 这将比...原创 2018-01-20 13:24:47 · 910 阅读 · 0 评论 -
进化策略
参考链接:https://morvanzhou.github.io/tutorials/machine-learning/evolutionary-algorithm/3-01-evolution-strategy/https://morvanzhou.github.io/tutorials/machine-learning/evolutionary-algorithm/3-00-evolutio原创 2018-01-14 19:31:10 · 3345 阅读 · 0 评论 -
用python实现遗传算法(GA),微生物遗传算法(MGA)求函数最值
参考链接:http://blog.csdn.net/u010902721/article/details/23531359http://blog.csdn.net/czrzchao/article/details/52314455本例遗传算法求最大值代码如下:import randomimport mathimport numpy as npi原创 2017-12-27 23:33:38 · 8364 阅读 · 7 评论 -
python粒子群算法的实现
参考博客:http://blog.csdn.net/zuochao_2013/article/details/53431767?ref=myreadhttp://blog.csdn.net/chen_jp/article/details/7947059算法介绍粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年...原创 2018-01-21 14:46:06 · 44648 阅读 · 55 评论 -
TensorFlow Session&&Variable&&PlaceHolder
Session会话持有并管理tensorflow程序运行时的所有资源session 是 Tensorflow 为了控制,和输出文件的执行的语句. 运行 session.run() 可以获得你要得知的运算结果。import tensorflow as tfimport numpy as np#定义常量矩阵matrix1 = tf.constant([[3,原创 2017-11-13 21:31:10 · 303 阅读 · 0 评论 -
遗传算法总结
参考链接:http://blog.csdn.net/tsroad/article/details/52448313http://blog.sina.com.cn/s/blog_5698433c0102v0d9.html转载 2018-03-17 14:28:00 · 283 阅读 · 0 评论 -
偏差-方差分解,学习和验证曲线评估模型
偏差和方差参考链接:https://www.zhihu.com/question/20448464 欠拟合=高偏差,过拟合=高方差原创 2018-05-16 19:56:22 · 1389 阅读 · 0 评论 -
模型选择和交叉验证
模型选择holdout方法在典型的机器学习应用中,为进一步提高模型在预测未知数据的性能,还要对不同的参数设置进行调优和比较,该过程称为模型选择。指的是针对某一特定问题,调整参数以寻求最优超参数的过程。 假设要在10个不同次数的二项式模型之间进行选择: 1.hθ(x)=θ0+θ1x2.hθ(x)=θ0+θ1x+θ2x23.hθ(x)=θ0+θ1x+⋯+θ2x3⋯10.hθ(x)=θ0...原创 2018-05-16 13:10:06 · 16265 阅读 · 0 评论 -
正则化(Regularization)
参考:https://www.cnblogs.com/jianxinzhou/p/4083921.html 线性回归中的三种形式: 注:我们讨论的线性或者非线性针对的是自变量的系数,而非自变量本身,所以这样的话不管自变量如何变化,自变量的系数如果符合线性我们就说这是线性的。所以这里我们也就可以描述一下多项式线性回归。 如:y=w0+w1xi+w2x2i+⋯+wmxmi+εi(i=1,2,⋯,...原创 2018-05-14 18:06:54 · 8248 阅读 · 0 评论 -
分类器的不同的性能评价指标
读取混淆矩阵(confusion matrix)混淆矩阵是一个2×2的方阵,用于展示分类器预测的结果——真正(true positive),假负(false negative)、假正(false positive)及假负(false negative) sklearn中使用confusion_matrix函数实现:import matplotlib.pyplot as pltf...原创 2018-05-19 22:52:19 · 9405 阅读 · 1 评论 -
参数估计和最大似然估计
点估计设总体XXX的分布函数的形式已知,但它的一个或多个参数未知,借助于总体XXX的一个样本来估计总体未知参数的值得问题称为参数的点估计问题。举例: 某炸药厂,一天中发生着火现象的次数XXX是一个随机变量,假设XXX服从λ>0λ>0\lambda>0泊松分布,即X∼π(λ)X∼π(λ)X \sim \pi(\l原创 2018-05-12 19:37:52 · 1526 阅读 · 0 评论 -
逻辑斯谛回归(logistic regression)
对于二分类问题,输出标记为y∈{0,1}y∈{0,1}y \in \{0, 1 \},0表示负向类,1表示正向类。需要通过一个函数将线性回归模型wTx+bwTx+bw^{T}x+b的输出值映射到[0,1][0,1][0,1]范围内,这个函数就是对数几率函数(logistic function),也称为sigmoid函数:ϕ(z)=11+e−zϕ(z)=11+e−z\phi(z)=\frac{1}{...原创 2018-05-12 17:01:44 · 2554 阅读 · 0 评论 -
网格搜索和随机搜索调优超参数&&嵌套交叉验证选择机器学习算法
网格搜索调优超参数通过对不同超参数列表进行暴力穷举搜索,并计算评估每个组合对模型性能的影响,以获得参数的最优组合。 对SVM模型调优超参数:import matplotlib.pyplot as pltfrom sklearn.model_selection import GridSearchCVfrom sklearn.svm import SVCfrom sklearn.l...原创 2018-05-17 23:41:35 · 6276 阅读 · 1 评论 -
利用线性函数实现鸢尾花数据集分类
从鸢尾花数据集中挑选山鸢尾(iris-Setosa)和变色鸢尾(iris-Versicolor) 两种花的信息作为测试数据。出于可视化的原因,只考虑数据集中萼片长度(sepla length)和花瓣长度(petal length)这两个特征。import pandas as pddf = pd.read_csv(r'http://archive.ics.uci.edu/ml/m...原创 2018-05-04 23:50:54 · 5201 阅读 · 0 评论 -
python机器学习笔记
sklearn官方数据集:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets机器学习分类器实例:import numpy as npfrom sklearn import datasetsfrom sklearn.model_selection import train_test_spl原创 2017-11-04 19:59:01 · 439 阅读 · 0 评论