机器学
小然_ran
南京理工与信工所博士,喜欢机器学习,深度学习
展开
-
Pytorch 实现学习率控制(WarmUp)
import torchfrom torch.optim.lr_scheduler import StepLR, ExponentialLRfrom torch.optim.sgd import SGDfrom torch.optim.lr_scheduler import _LRSchedulerfrom torch.optim.lr_scheduler import ReduceLROnPlateauclass GradualWarmupScheduler(_LRScheduler):.原创 2021-01-02 18:41:54 · 7098 阅读 · 6 评论 -
python实现舆情数据聚类
https://github.com/ranran4082391/restaurant-comments 数据集地址importpandasaspdfromdateutilimportparserfromsnownlpimportSnowNLPimportmatplotlib.pyplotaspltimportnumpyasnpdf=pd.read_excel('restaurant-comments.xlsx')#df[...原创 2020-08-01 20:35:29 · 709 阅读 · 0 评论 -
numpy实现简单的神经网络
importnumpyasnp#Nisbatchsize;D_inisinputdimension;#Hishiddendimension;D_outisoutputdimension.N,D_in,H,D_out=64,1000,100,10#Createrandominputandoutputdatax=np.random.randn(N,D_in)y=np.random.randn(N,D...原创 2020-07-21 21:56:28 · 243 阅读 · 0 评论 -
python+pytorch实现双线性模型对鸢尾花数据集训练
importtorch.nnasnnimporttorchfromsklearn.datasetsimportload_irisdata=load_iris()X1=torch.tensor(data.data).float()X2=0.01*torch.rand(150,2).float()y=torch.tensor(data.target).long()W=torch.randn(3,X1.shape[1],...原创 2020-07-08 10:01:16 · 827 阅读 · 1 评论 -
压缩度量(矩阵映射)
#压缩度量是一个数学概念,例如我们采用欧氏距离作为度量方法,对于任意的||xi-xj||>||f(xi)-f(xj)||(xi和xj为样本空间中的样本)#场景如果我们的样本点之间距离很大,数据很稀疏的情况下,这种距离很大的计算是非常消耗资源的。我们不妨将空间的样本映射的更加紧凑点,这样计算资源的消耗也比较少。importnumpyasnpa=np.array([1,1])b=np.array([1,6])#我们需要用一个矩阵...原创 2020-06-12 09:42:59 · 427 阅读 · 0 评论 -
谱聚类及其创新思考(python)
#谱聚类'''对样本求相似性矩阵, 其实就是把每个sample当作一个node,构建一个图关系。1 求向量之间的关系有很多方法 比如 F1范数, F2范数, 无穷范数,余弦 f(x1, x2)---> scalar如果大家想改进的话这里我建议可以用度量学习的技巧去替换求向量之间关系的方法'''import numpy as npdef distance(x1, x2): ...原创 2020-03-18 15:04:26 · 337 阅读 · 0 评论 -
神经网络的线性单元不能拟合指数表达
'''目前神经网络一直都是采用relu(非线性单元)作为激活函数,目的是产生类似异或表达,比如线性函数的可加性就被很好的破坏掉了f(ax+by)=af(x)+bf(y) 在加入relu之后不成立了。但是对于e^x 这种轨迹,relu还能有很好的拟合能力吗?我们做个实验看看吧。'''import torchfrom torch import nnimport torch.optim...原创 2020-03-17 15:45:16 · 249 阅读 · 0 评论 -
牛顿迭代法的简单实现(python)
'''牛顿法很多人写了一大通感觉非常的高大上,其实想法很简单,我们目标就是找函数的零点比如你选了一个起始点x = a , y = f(a) 这个点相比于零点假如说是有距离的。那么你会发现在这个x = a 点处求一个切线方程,这个切线方程的截距距离零点更近。ok, 于是l(x) = f(a) + f'(a)(x - a) ---> x = a - f(a) / f'(a) 目的是求...原创 2020-03-17 10:34:18 · 2455 阅读 · 0 评论 -
对数换底公式的意义(线性理解)
import numpy as npb = [1.1, 2, 3, 4, 5, 6, 7, 8, 9, 10]y1 = [np.log2(i) for i in b] #log2函数y2 = [np.log10(i) for i in b]print(y1)print(y2)# 我们从高中学的 对数函数的换底公式 其实有一个很重要的意义 任意两个对数函数 存在...原创 2020-03-16 11:55:19 · 925 阅读 · 0 评论 -
度量学习(NCA)
frommetric_learnimportNCAfromsklearn.datasetsimportmake_classificationfromsklearn.neighborsimportKNeighborsClassifiernca=NCA()X,y=make_classification()nca.fit(X,y)print(nca....原创 2020-02-22 11:36:25 · 878 阅读 · 0 评论 -
行为匹配(采用变分自编码器对数据降维)
importnumpyasnpimporttorchimporttorch.nnasnnimporttorch.nn.functionalasF#Cosinesimilaritydefcos_sim(a,b):numerator=np.multiply(a,b).sum()denomitor=np.lina...原创 2020-02-15 10:14:55 · 1078 阅读 · 0 评论 -
深度神经网络炼丹与优化方法
链接:https://pan.baidu.com/s/1o-GwTf9mKctEbkv-jA8TqQ提取码:cvb8原创 2020-01-23 17:08:38 · 248 阅读 · 0 评论 -
采用微软的AutoML框架对鸢尾花进行特征筛选
from sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom nni.feature_engineering.gbdt_selector import GBDTSelectorimport torchiris = datasets.load_iris()x = iris.data...原创 2020-01-05 15:03:10 · 289 阅读 · 0 评论 -
借助于pytorch的GNN网络解决鸢尾花分类问题
from sklearn.datasets import load_irisimport torchfrom torch_geometric.data import Dataimport networkx as nximport torch.nn.functional as Ffrom torch_geometric.nn import GCNConvdata = load_iris...原创 2020-01-03 15:36:43 · 1680 阅读 · 1 评论 -
基于pytorch求自构造函数的高阶导数
import torchfrom torch.autograd import Variabledef f(x): y = x ** 2 return yx = Variable(torch.Tensor([5]), requires_grad=True)grad_x = torch.autograd.grad(f(x), x, create_graph=True)p...原创 2019-05-20 17:00:14 · 1169 阅读 · 0 评论 -
基于pytorch实现牛顿迭代法求函数极小值
import torchfrom torch.autograd import Variabledef f(x): y = x ** 2 return yx = Variable(torch.Tensor([5]), requires_grad=True)for i in range(100): grad_x = torch.autograd.grad(f(x)...原创 2019-05-20 17:23:14 · 1784 阅读 · 0 评论 -
感知机根据不同分布数据样本得到不同的损失值(基于pytorch),简单理解算法收敛性问题
# 测试函数最常用来解决的一个问题 :算法最后结果是不是收敛的'''比如我们想用一条线去 分割一个数据集 将他分成两个类别-----》这里我们用感知机算法来测试一下''''''感知机一般只能解决线性分类问题也就是说图像是这个样子的,我们目的是找到一条线讲他们分开'''import matplotlib.pyplot as pltimport numpy as npX = [[1...原创 2019-05-24 21:00:54 · 486 阅读 · 0 评论 -
基于pytorch比较sigmoid和relu函数梯度下降速度
import torchimport torch.nn as nnfrom torch.autograd import Variableimport torch.optimimport matplotlib.pyplot as pltX = torch.Tensor([[1, 2], [2, 2], [2, 1], [1, 1], [4, 4], [4, 5], [5, 4], [...原创 2019-05-21 21:19:46 · 509 阅读 · 0 评论 -
基于pytorch, softmax,logsoftmax 表达
import torchimport numpy as npinput = torch.autograd.Variable(torch.rand(1, 3))print(input)print('softmax={}'.format(torch.nn.functional.softmax(input, dim=1)))print('logsoftmax={}'.format(...原创 2019-05-27 09:47:53 · 1619 阅读 · 0 评论 -
基于pytorch线性判决器(不使用nn.moudle)
import torchimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn import datasetsfrom torch.utils.data import TensorDataset, DataLoaderdigits = datasets.load...原创 2019-05-17 17:16:29 · 237 阅读 · 0 评论 -
互相关操作与卷积操作
import numpy as npimport torchdata = np.correlate([1, 2], [1, 2], "full")print(data)x = torch.Tensor([[1, 2]])kernel = torch.Tensor([[1, 2]]).unsqueeze(0).unsqueeze(0).float()weight = torch.nn.P...原创 2019-05-17 20:18:32 · 1205 阅读 · 0 评论 -
输出各层神经网络权重与偏置
from torch import nnimport torch.nn.functional as fclass SimpleNet(nn.Module): def __init__(self, in_dim, n_hidden_1, n_hidden_2, out_dim): super(SimpleNet, self).__init__() self...原创 2019-05-29 17:15:09 · 3374 阅读 · 0 评论 -
基于pytorch岭回归
import torch.nnimport torch.optimx = torch.tensor([[1., 1., 1.], [2., 3., 1.], [3., 5., 1.], [4., 2., 1.], [5., 4., 1.]])y = torch.tensor([-10., 12., 14., 16., 18.])w = torch.zeros(3, requires_gr...原创 2019-06-26 09:30:45 · 1370 阅读 · 3 评论 -
贝叶斯网络对手写识别体的预测
import pyvarinffrom torch.autograd import Variableimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom sklearn import datasetsimport torchfrom sklearn.model_sele...原创 2019-07-11 10:06:03 · 488 阅读 · 0 评论 -
pytorch模型的数据初始化代码
import torch.nn as nnimport torch.nn.functional as Fdef initialize_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): nn.init.normal_(m.weight.data, 0, 0....原创 2019-07-15 17:18:42 · 712 阅读 · 0 评论 -
基于pytorch手动code损失函数,并比较了7种梯度下降算法
import torchimport matplotlib.pyplot as pltimport torch.optim as optimimport randomdef grad_down(optimizer, x, w, y): optimizer.zero_grad() output = torch.mv(x, w) loss = MSELoss(out...原创 2019-05-20 11:55:20 · 447 阅读 · 0 评论 -
代码解释似然函数
#encoding: utf-8'''案例 弹出硬币10次 参数 a(0< a <1)代表硬币正面朝上的概率,反面朝上的概率为 1-a。求参数a的值首先思考在已知最后结果的前提下,表达当前概率函数的表达式 [a]^y1*[1-a]^(1-yi)= Y, yi对应标签Y代表当前的硬币的结果的概率,似然函数就是上述表达式累成的结果。我们重复试验10次 。'''import...原创 2019-04-21 20:21:44 · 266 阅读 · 0 评论 -
针对复合函数的LSTM时序预测
import torchfrom torch.autograd import Variableimport torch.nn.functional as Fimport matplotlib.pyplot as pltimport torch.nn as nnimport mathimport numpy as npimport matplotlib.pyplot as plti...原创 2019-04-09 00:12:18 · 234 阅读 · 0 评论 -
pytorch简单实现GAN的分类
github网址:https://github.com/ranran4082391/GAN原创 2019-04-06 09:24:20 · 2051 阅读 · 5 评论 -
pytorch 搭建的基于LSTM自编码器对数据降维并采用KNN算法对鸢尾花分类
LSTM搭建自编码器提取特征,KNN分类import torchimport torch.nn as nnfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split# 超参数EPOCH = 200LR = 0.005data = load_iris()...原创 2019-03-20 16:43:56 · 5276 阅读 · 10 评论 -
自编码器对数据降维,最后采用LSTM对数据进行拟合预测
采用自编码器对高维特征表达成低维特征,最后采用LSTM对数据进行拟合,预测准确率很高。import torchimport torch.nn as nnfrom sklearn.datasets import load_irisimport matplotlib.pyplot as pltimport numpy as npfrom sklearn.model_selection ...原创 2019-03-16 10:25:10 · 7711 阅读 · 13 评论 -
统计学习方法求PI(蒙特卡罗算法和拉斯维加斯算法)
1.蒙特卡罗算法计算圆周率,蒙特卡洛算法在相对确定的时间里获得可能不完全正确的结果。但是从概率上看,运行的时间越长,获得结果越可能越可能正确,或和正确值越接近。2.拉斯维加斯算法,拉斯维加斯算法总是能获得正确的结果,但是运行时间不定。https://github.com/ranran4082391/xiaoran_5...原创 2019-03-04 18:17:39 · 381 阅读 · 0 评论 -
最容易上你上手的线性回归学习案例(附两个简单完整可运行的代码)
目前网上大多数的案例只有说明,没有可运行的代码,作者上传了两个案例,第一个基于正规方程的求解,非常的简单易懂。第二个是基于最小二乘法的案例,这两个案例绝对可以轻松运行无bug,帮助大家深入的学习线性回归而不是纸上谈兵,本项目基于最小二乘法的案例大家可以试试增加样本数量或者调整学习率,你会发现线性回归初始理论存在大量的bug需要改进,帮助大家深入理解为什么要依据样本推导学习率,为什么最好不要设置固定...原创 2019-02-26 20:54:50 · 613 阅读 · 1 评论 -
常见的矩阵求导公式---辅助推导机器学习公式
网上正确的矩阵求导公式为原创 2019-02-23 16:32:41 · 1055 阅读 · 1 评论 -
fbprophet 时间序列预测神器!
一、简介: fbprophet是facebook开发的关于时间序列预测的开源工具包,具体的介绍请参考https://facebook.github.io/prophet/重头戏来了!!!开发程序最耗费时间的总是环境配置二、环境配置: fbprophet一直遵循简单及美的编程准则,前期开发确实节省了很多时间。但是fbprophet最最恶心的就是环境配置,当我在pycharm写上import...原创 2018-07-15 18:07:37 · 5705 阅读 · 0 评论 -
浅谈tsfresh(附demo)
简介:tsfresh是开源的提取时序数据特征的python包,能够提取出超过4000种特征,堪称提取时序特征的瑞士军刀。最近有所需求才开始研究tsfresh,目前除了官方的英文文档以外几乎没有中文的博客对此有详细的介绍。本文将介绍一个关于时间序列分类的demo,帮助大家尽快的学习tsfresh。特别提示:python版本小于2.7特征类别:https://blog.csdn.net...原创 2018-07-18 16:53:46 · 16803 阅读 · 8 评论 -
高斯核函数就是选择landmark,然后旱地拔葱,升高维度
# coding=gbkimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt#准备数据def guess(xi, xj, l1, l2): gamma = 0.1 return np.exp(-gamma*((xi - l1)**2+(xj - ...原创 2019-04-26 16:17:53 · 579 阅读 · 0 评论 -
凸二次规划问题 库函数
#encoding: utf-8'''python 解决 凸二次规划问题 首先转换成标准型 1/2 * X^T * P *X + q ^ T * X限制条件 G * X <= h A * X = bx1 = (3,3), x2 = (4, 3) x3 = (1,1), 其中 x1 x2是正例, 求最大间隔分离 超平面'''import numpyf...原创 2019-04-22 21:05:30 · 983 阅读 · 0 评论 -
基于pytorch多标记实例,实现自动对两个未知数的求和与求积
import torchfrom torch.autograd import Variablefrom sklearn import datasetsfrom torch import nnX = [[i, i] for i in range(0, 10)]Y = [[i[0]*2, i[0]*i[0]] for i in X]X_train = Variable(torc...原创 2019-05-07 16:48:03 · 332 阅读 · 0 评论 -
残差神经网络训练sklearn手写体数据集(pytorch)
import torchfrom torch.autograd import Variablefrom sklearn import datasetsfrom torch import nndigits = datasets.load_digits()X = digits.imagesy = digits.targetX_train = X[:1700, :, :]Y_t...原创 2019-05-07 13:01:49 · 866 阅读 · 0 评论