精华内容
下载资源
问答
  • TensorFlow对服装图像进行分类的样本和标签
  • 二维样本数据和标签回归及LDA代码实现 1、先上效果图: 纠正一下横纵坐标,横坐标为x1,纵坐标为x2,这是样本与标签回归的二维结果图。 2、LDA结果图: 图中的是投影直线和分类面 3、上代码: 样本通过高斯分布生成...

    二维样本数据和标签回归及LDA代码实现

    1、先上效果图:
    纠正一下
    纠正一下横纵坐标,横坐标为x1,纵坐标为x2,这是样本与标签回归的二维结果图。

    2、LDA结果图:
    在这里插入图片描述
    图中的是投影直线和分类面

    3、上代码:
    样本通过高斯分布生成的随机数,标签为+1,-1.

    import numpy as np
    import matplotlib.pyplot as  plt
    from matplotlib.pyplot import MultipleLocator
    from sklearn import model_selection
    from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
    from sklearn import metrics
    
    def get_train_data(data_size=100):
        data_label=np.zeros((2*data_size,1))
        #class 1
        x1=np.reshape(np.random.normal(1,0.3,data_size),(data_size,1))
        y1=np.reshape(np.random.normal(1,0.5,data_size),(data_size,1))
        data_train=np.concatenate((x1,y1),axis=1)
        data_label[0:data_size,:]=1
        #class 2
        x2=np.reshape(np.random.normal(-1,0.3,data_size),(data_size,1))
        y2=np.reshape(np.random.normal(-1,0.5,data_size),(data_size,1))
        data_train=np.concatenate((data_train,np.concatenate((x2,y2),axis=1)),axis=0)
        data_label[data_size:2*data_size,:]=-1
        
        return data_train,data_label
    
    def get_test_data(data_size=10):
        testdata_label=np.zeros((2*data_size,1))
        #class 1
        x1=np.reshape(np.random.normal(1,0.3,data_size),(data_size,1))
        y1=np.reshape(np.random.normal(1,0.5,data_size),(data_size,1))
        data_test=np.concatenate((x1,y1),axis=1)
        testdata_label[0:data_size,:]=1
        #class 2
        x2=np.reshape(np.random.normal(-1,0.3,data_size),(data_size,1))
        y2=np.reshape(np.random.normal(-1,0.5,data_size),(data_size,1))
        data_test=np.concatenate((data_test,np.concatenate((x2,y2),axis=1)),axis=0)
        testdata_label[data_size:2*data_size,:]=-1
        
        return data_test,testdata_label
    
    #linear regression
    def LR(data,label):
        datalen=len(data) 
        y=label
        ones=np.ones((trainlen,1))
        x=np.concatenate((data,ones),axis=1)
        if np.linalg.det(np.dot(x.T,x)) == 0:
            print('the matrix is singular, cannot do inverse')
        else:
            w=np.dot(np.dot(np.linalg.inv(np.dot(x.T,x)),x.T),y)
            
        return w
    
    #square error
    def ressError(y, yHat):
        n=len(y)
        sum1=np.dot((y-yHat).T,(y-yHat))
        error=sum1/n
        return error
    #LDA
    def LDA(data,label):
        length=len(data)
        x1=data[:int(length/2),:]
        x2=data[int(length/2):,:]
        mu1=np.mean(x1,axis=0)
        mu2=np.mean(x2,axis=0)
        sw=np.dot((x1-mu1).T,(x1-mu1))+np.dot((x2-mu2).T,(x2-mu2))
        w=np.dot(np.linalg.inv(sw),(mu1-mu2))
        
        return w
    ##########main##########
    data_train,data_label=get_train_data()
    data_test,testdata_label=get_test_data()
    trainlen=len(data_train)
    testlen=len(data_test)
    
    ##########LDA#########
    #classification surface
    lda_model = LinearDiscriminantAnalysis(solver='lsqr', shrinkage=None).fit(data_train, data_label)
    label_pred = lda_model.predict(data_test)
    print(metrics.confusion_matrix(testdata_label, label_pred))
    print(metrics.classification_report(testdata_label, label_pred))
    h = 0.01
    x0, x1 = np.meshgrid(np.arange(-3, 3, h),np.arange(-3, 3, h))
    z = lda_model.predict(np.c_[x0.ravel(), x1.ravel()]) 
    z = z.reshape(x0.shape)
    plt.contourf(x0, x1, z)
    
    #projection line
    w=LDA(data_train,data_label)
    ax1=plt.subplot(1,1,1)
    ax1.scatter(data_train[:int(trainlen/2),0],data_train[:int(trainlen/2),1],s=15,c='r',label='class1')
    ax1.scatter(data_train[int(trainlen/2):trainlen,0],data_train[int(trainlen/2):trainlen,1],s=15,c='y',label='class2')
    ax1.scatter(data_test[:int(testlen/2),0],data_test[:int(testlen/2),1],c='b',marker='*',label='test_data')
    ax1.scatter(data_test[int(testlen/2):testlen,0],data_test[int(testlen/2):testlen,1],c='b',marker='*')
    xmin = -data_train[:, 0].max()
    ymin = ( w[1] / w[0] ) * xmin
    xmax= data_train[:, 0].max()
    ymax = ( w[1] / w[0] ) * xmax
    
    #set LAD axis parameters
    ax1.set_xlabel('x1')
    ax1.set_ylabel('x2')
    x_major_locator=MultipleLocator(0.5)
    y_major_locator=MultipleLocator(0.5)
    plt.plot([xmin, xmax], [ymin, ymax],label='project line')
    plt.legend(loc='upper left')
    plt.show()
    
    #draw train_data
    ax=plt.subplot(1,1,1)
    ax.scatter(data_train[:int(trainlen/2),0],data_train[:int(trainlen/2),1],s=15,c='r',label='class1')
    ax.scatter(data_train[int(trainlen/2):trainlen,0],data_train[int(trainlen/2):trainlen,1],s=15,c='y',label='class2')
    
    #draw test_data
    ax.scatter(data_test[:int(testlen/2),0],data_test[:int(testlen/2),1],c='b',marker='*',label='test_data')
    ax.scatter(data_test[int(testlen/2):testlen,0],data_test[int(testlen/2):testlen,1],c='b',marker='*')
    
    # LR:train
    what=LR(data_train,data_label)
    # yhat=(what[1]/what[0])*data_train[:,0]
    yhat=-(what[0]*data_train[:,0]+what[2])/what[1]
    
    #set regress axis parameters 
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    x_major_locator=MultipleLocator(0.5)
    y_major_locator=MultipleLocator(0.5)
    plt.legend(loc='upper left')
    ax.plot(data_train[:,0],yhat,c='g')
    
    
    #test error
    teones=np.ones((testlen,1))
    data_test1=np.concatenate((data_test,teones),axis=1)
    yHat = np.dot(data_test1,what)
    print("square error:",ressError(testdata_label, yHat))
    
    plt.show()
    

    如果有帮助就留下个赞吧!AOA

    展开全文
  • 整理样本标签

    2016-07-28 21:01:00
    增加训练样本和对应标签(筛选标签,然后得到对应类别的文件名,从文件夹中挑选样本,并重命名); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取原标签表格 [N, T...
    %%%整理样本标签:
    %%%1. 手动删除坏样本; 2.将训练样本和测试样本分开;
    %%%3. 增加训练样本和对应标签(筛选标签,然后得到对应类别的文件名,从文件夹中挑选样本,并重命名);
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取原标签表格
    [N, T] = xlsread('F:\kaggle_data_zip\train_zip\trainLabels.csv\trainLabels.xls');
    %%读取所有标签,N是数字,T是文本
    
    T=T(2:35111);%%只留下文件名对应的文本
    
    for i=1:35110
        train(i).image=T{i};
        train(i).level=N(i);
    end
    %%%存入train 和 test 结构体中
    test=train(length(train)-1000+1:length(train));
    train=train(1:length(train)-1000);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    %%将训练和测试标签分别保存,先将结构体转化成cell,然后再将cell写入excel文件
    testcell=cell(1000,2);
    for i=1:length(test)
        testcell{i,1}=test(i).image;
        testcell{i,2}=test(i).level;
    end
    xlswrite('F:\kaggle_data_zip\train_zip\test.xls',testcell,'sheet1');
    
    traincell=cell(34110,2);
    for i=1:length(train)
        traincell{i,1}=train(i).image;
        traincell{i,2}=train(i).level;
    end
    xlswrite('F:\kaggle_data_zip\train_zip\train.xls',traincell,'sheet1');
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%不同类别标签筛选,不用排序
    H=cell(length(train),1);
    for i=1:length(train)
        if (train(i).level==0)
            H{i}=train(i).image;
        end
    end
    xlswrite('F:\kaggle_data_zip\train_zip\A.xls',H,'sheet1');%% 在excel表格中删除空行
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    clear all
    im={};
    [p, pp] = xlsread('F:\kaggle_data_zip\train_zip\B.xls');%% 读出新的表格
    for i=1:length(pp)     %% 将cell再换成结构体
        dis(i).image=strcat(pp{i},'.jpeg');
        path=strcat('F:\AAAAA\角度\角度180\',dis(i).image);
        im{i}=imread(path);
        imwrite(im{i},strcat('F:\DR\train\B+\','30a',dis(i).image),'jpeg');% 将不同的类别的图像,分别写入到不同的文件夹下面
        im{i}=1;
    end
    
    
    %%%从不同类别的样本数据中,打乱后,随机挑选一定数量的样本
    clear all
    dis3=dir('F:\DR\train\E+\*jpeg');%%%所有样本
    dis2=dis3(randperm(length(dis3)));%%%随机打乱
    dis=dis2(1:int16(length(dis3)));%%%挑选一定数量
    
    %%读取不同种类的数据并为他们加上标签,并输出位excel表格;当要将cell转换成表格时,维数过大也不行,第0类就不行。
    %%我们在第0类只选取一部分数据,所以,不会出现这个问题。
    im={};
    for i=1:length(dis)
        path=strcat('F:\DR\train\E+\',dis(i).name);
        im{i}=imread(path);%%将挑选的样本添加到相应的 A/B/C/D ++ 文件夹中
        imwrite(im{i},strcat('F:\DR\train\E++\',dis(i).name),'jpeg');
        im{i}=1;
        dis1(i).image=dis(i).name;
        dis1(i).level=4;
        label0{i,1}=dis1(i).image;
        label0{i,2}=dis1(i).level;
    end
    xlswrite('F:\DR\train\4.xls',label0,'sheet1'); %%注意,E+ 文件夹中的数据处理,是100%
    
    %%%给没后缀的名字加后缀! 也可以用txt文档中的替换功能;
    %%% 直接写出文件夹中样本标签EXCEL。
    clear all
    dis=dir('F:\DR\train\A\*jpeg');%%%A所有样本
    im={};
    for i=1:length(dis)
        dis1(i).image=dis(i).name;
        dis1(i).level=0;
        label0{i,1}=dis1(i).image;
        label0{i,2}=dis1(i).level;
    end
    xlswrite('F:\DR\train\A1.xls',label0,'sheet1');
    

     

    展开全文
  • Watson Research Center https://www.cs.uic.edu/~liub/publications/ICDM-03.pdf 这篇文章主要研究如何利用正样本和无标注的样本来构建文本分类算法。 这类问题的关键特性在于,没有可以用来学习的负样本。已有...

    Building Text Classifiers Using Positive and Unlabeled Examples 

    Bing Liu, Yang Dai, Xiaoli Li, Wee Sun Lee, Philip S. Yu 

    University of Illinois at Chicago, National University of Singapore/Singapore-MIT Alliance, IBM T. J. Watson Research Center

    https://www.cs.uic.edu/~liub/publications/ICDM-03.pdf

     

     

    这篇文章主要研究如何利用正样本和无标注的样本来构建文本分类算法。

     

    这类问题的关键特性在于,没有可以用来学习的负样本。已有相关文献提出一些技巧来解决这类问题。

     

    这些技巧基于同一套思想,意即分两步来构建分类器。这些的不同点在于,这两步利用不同的方法来实现。

     

    这篇文章,首先介绍这两个步骤中的一些新方法,并且对这两步重的所有可能组合进行比较综合评估。然后,提出一种原理性更强的方法来解决该问题,基础为SVM的有偏形式,结果显示该方法更加精确。

     

     

    一些现有方法的两步走策略简介如下

    其中PEBL表示Positive example based learning

    DNF表示Disjunctive Normal Form

     

     

     

    下面是LPU的来源

     

     

    下面是先前的一些理论基础

     

     

    NB简介如下

     

     

    其中RN表示Reliable negative

     

     

     

    第二种方法的简介如下

     

     

    spy方法细节描述如下

     

    下面是伪代码

     

    PEBL方法的伪代码如下

     

    针对第二步,有以下四种技巧

     

     

    其中下面是对SVM的简介

     

     

    下面是EM与NB结合的细节步骤

     

     

    下面是迭代SVM的步骤伪代码

     

    ROC-SVM的伪代码如下

     

     

    这篇文章所提方法为有偏SVM

     

     

    衡量该算法的指标不能用F score,但是可以利用类似的指标,比如下面这种指标

     

    数据集及分割策略如下

     

     

    第一步采用的几种方法如下

     

     

    第二步采用的几种方法如下

     

     

    结果统计如下

     

     

     

    下面是一些结论

    关于S-EM

     

     

    关于PEBL

     

     

    关于Spy+SVM

     

     

    关于其他几个的结论如下

     

     

    关于NB

     

     

    纯NB和纯SVM的对比如下

     

     

    这篇文章所提算法跟其他算法效果对比如下

     

     

    参考代码

    https://github.com/aldro61/pu-learning

    https://github.com/kiryor/nnPUlearning

    展开全文
  • 这里假设 类标签为largeDoses, smallDoses, didntLike三类,假设训练样本有三个特征属性,类标签放在数据集的最后一列 import numpy as np def file2matrix(filename): # filename是文件保存地址 love_...

    这里假设 类标签为largeDoses, smallDoses, didntLike三类,假设训练样本有三个特征属性,类标签放在数据集的最后一列

    import numpy as np
    
    def file2matrix(filename):  # filename是文件保存地址
        love_dictionary = {'largeDoses':3, 'smallDoses':2, 'didntLike':1}
        fr = open(filename)
        arrayOLines = fr.readlines()
        numberOfLines = len(arrayOLines)            # 获得文件的行数
        returnMat = np.zeros((numberOfLines, 3))        # 用于存放训练数据
        classLabelVector = []                       # 用于存放类标签
        index = 0
        for line in arrayOLines:
            line = line.strip() # 截取掉所有的回车字符
            listFromLine = line.split() 
            returnMat[index, :] = listFromLine[0:3] # 存放训练样本
            if(listFromLine[-1].isdigit()): # 如果标签字符串是数字,用int()函数转换为数字类型
                classLabelVector.append(int(listFromLine[-1]))
            else: # 如果标签字符串不是数字,利用字典转换为数字类型
                classLabelVector.append(love_dictionary.get(listFromLine[-1]))
            index += 1
        return returnMat, classLabelVector

    isdigit()判断一个字符串是否为数字

    b = ['a', '2a', '2']
    print(b[0].isdigit())
    print(b[1].isdigit())
    print(b[2].isdigit())
    
    False
    False
    True

     

    展开全文
  • pos_sample_df是一个drugATC编码之间是否有associations...其中有2000种drug,3000个ATC,drugATC的特征均为500x1,邻接矩阵中的1为正样本标签,0为负样本标签。拼接后的一个样本为1001x1的列向量。 import nump...
  • 最近想弄点样本来做个简单的图片分类,期望能找到所有的样本图片文件和标签文件,这样就可以模拟实际场景下进行机器学习了。在网上找了一番,都是打包的数据,也有解析出样本图片的,但是都不是很全,例如缺少标签。...
  • 点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:AaronWard编译:ronghuaiyang导读你有数据,但是标签并不可靠,你该怎么办?问题通常情况下,公司希望对给定...
  • 文章目录前言YOLO网络结构输入输出的结构与映射关系输入输出7*7的网格设计30维向量训练样本标签损失函数预测(inference)与NMS(非极大值抑制)cfg配置文件参数简要解析 前言 网上有许多YOLOv1的文章,但绝大部分...
  • 对新数据集采取线性回归Logistic回归,给出基于样本k近邻数据的多标签分类算法。为了进一步利用原始数据的信息,考虑每个标签关于原始属性的Markov边界,结合新数据的特征建立新的回归模型,提出考虑Markov边界的...
  • 本文将介绍有关透明度样本标签计划的详细信息,以及BarTender的临时透明度样本如何帮助您满足透明度计划要求。 什么是透明度 透明度是Amazon公司开发的一项计划,旨在提供物品级别的追踪...
  • mnist 里的图片以png(png文件名里包含样本和标签)保存的数据集,可以下载使用,是数字0~9的手写图片
  • Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels 1. 方法 协同指导(co-teaching)同时使用两个...同样,网络 f 对网络 g 中损失较少的样本进行计算损失反向传播。 2. 实验 在M
  • 返回的向量以这样的方式将样本分配到折叠中,使得每个标签的正负样本的相同分布在所有折叠中近似保持。 该实现可用作CVPARTITION的直接替代。 参考:Sechidis,KonstantinosTsoumakas,GrigoriosVlahavas,约...
  • 怎么打乱样本顺序是很多朋友都会遇到的问题,其实这个问题十分简单。  在matlab下进行操作的步骤如下:...如上图所示,数据格式是1710*144,1710代表样本的数量,现在从中取1500个样本出来,并将样本对应的标签顺序同
  • 2.部分样本在CNN学习中可能会导致性能下降过拟合的问题 3.训练多标签CNN时候若把缺失标签样本认定为负样本,会导致性能下降 4.在多标签CNN分类时会把每个类单独当作单标签来学习,导致忽略了类与类之间的相互...
  • 里面包含用ELM进行逻辑回归二分类测试的原诗样本数据,以及分开的训练样本、测试样本,还有样本和标签分离的数据。可以用于Python和MATLAB进行简单测试,便于ELM快速入门。对应的Python和MATLAB代码见:...
  • 任一样本被标记了风格款式两个标签,但是95%的样本标签都是 任一风格+其他裤子 或者 任一裤子+其他风格 这样的。讲得可能不是很清楚,下图帮助理解: ; margin-right:0cm">...
  • 思想很简单,由于样本数据的变化是未知的,想要标签数据随着样本数据的变化而变化,最简单的方法就是将标签和样本融合在一起。 例如,在python中,我们可以这样做: import numpy as np data = [[1,2,3,1],[2,1
  • 使用angular resource载入中priorityData.json中间json数据,结合D3绘制甜甜圈图。执行index.html其结果见于图。: priorityData.json中json数据例如以下: { "priority":{ "Blocker":12, ... ...
  • 在工业生产活动中,有一类常见机器学习问题,就是如何基于有噪声样本标签训练模型,以进行故障检测分类。 先解释下什么是有噪声样本标签,它指的是训练模型用的样本标签并非完全准确,部分样本标签有标错的情况...
  • 深度学习数据标签处理的两种常见方式:LabelEncoder OneHotEncoderOne-Hot 编码即独热编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,...
  • 思想很简单,由于样本数据的变化是未知的,想要标签数据随着样本数据的变化而变化,最简单的方法就是将标签和样本融合在一起。 例如,在python中,我们可以这样做: import numpy as np data = [[1,2,3,1]...
  • 不管你使用什么样的方法规则来处理开发样本集中的错误标签,要记得在测试样本集中也使用同样的方法,以保证开发样本测试样本集满足同样的数据分布。同时修复开发样本测试样本集会防止出现第6章中讨论的...
  • 每类数据的多观测样本集由属于同一模式的单观测样本组成, 每次分类时, 对两个多观测样本集的标签做两次假设, 通过比较不同标签假设下的分类误差确定多观测样本集的标签. 该方法同时充分利用了样本类内的相关性类...
  • 其他用户可以使用文档来尝试创建大脑来控制任何样本。 安装 VP Link用户 将可执行文件复制到CapeSoftware \ VPLink3目录。 使用启用了Bonsai的.rev文件中的Bonsai Tag Integration页面,将VP Link标签添加到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,607
精华内容 1,442
关键字:

样本和标签