精华内容
下载资源
问答
  • UCI经典分类二分类数据集,机器学习算法测试。亲测可用。
  • 各种格式机器学习常用的二分类数据集,还有很多,文件大小限制上传不了,可以联系我
  • 数据集前8行用于描述数据信息,后面的每一行为一个样本,一行有4列,前三列为特征,最后一列为对应数据标签。该数据集可用于监督学习。
  • 二维二分类数据

    千次下载 热门讨论 2013-11-24 12:26:37
    二维二分类数据,大小为3*3000,数据格式为x坐标、y坐标、类别。前2500为训练、后500为测试
  • 创建2分类数据集

    千次阅读 2019-11-19 17:11:43
    创建2分类数据集 并进行简单决策树分类代码示例 代码示例 import numpy as np from pandas import DataFrame import matplotlib.pyplot as plt from scipy.stats import norm from sklearn.tree import ...

    创建2分类数据集 并进行简单决策树分类

    代码示例:

    import numpy as np
    from pandas import DataFrame
    import matplotlib.pyplot as plt
    from scipy.stats import norm
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.model_selection import train_test_split
    
    # 以y1 = x**2 曲线为分隔线进行分类
    x = np.linspace(0,1,100)
    z = norm.rvs(loc=0, size=100, scale=1) 
    y1 = x**2
    y = x**2 + z 
    df = DataFrame({"x":x,"y":y,"class":z})
    df["class"][df["class"]>=0] = 1
    df["class"][df["class"]<0] = 0
    xx = df[["x","y"]]
    yy = df["class"]
    
    # 分割训练与测试集
    X_train,X_test,y_train,y_test = train_test_split(xx,yy,test_size=0.3)
    
    # 选用决策树进行学习及预测,并画图
    cf = DecisionTreeClassifier(max_leaf_nodes=10)
    cf.fit(X_train,y_train)
    xxx = DataFrame(X_test)['x']
    yyy = DataFrame(X_test)['y']
    zzz = cf.predict(X_test)
    print cf.score(X_test,y_test)
    plt.plot(x,y1)
    plt.scatter(xxx,yyy,c=zzz)
    plt.show()
    

    分割效果图:
    在这里插入图片描述

    展开全文
  • 二分类之IMDB数据集

    千次阅读 2018-12-16 16:16:00
    加载数据集 from keras.datasets import imdb (train_data, train_labels),(test_data,test_labels) = imdb.load_data(num_words=10000) ##此处10000是为了保留训练数据中前10000个最常出现的单词,并抛弃低频的单词...

    电影评论好坏分类(随笔)

    加载数据集

    from keras.datasets import imdb
    (train_data, train_labels),(test_data,test_labels) = imdb.load_data(num_words=10000)
    ##此处10000是为了保留训练数据中前10000个最常出现的单词,并抛弃低频的单词,保证数据不会太大

    解码评论,将整数转换成单词

    ## 将单词映射为以整数为索引的字典
    word_index = imdb.get_word_index()
    ## 键值颠倒,将索引转为单词
    reverse_word_index = dict([(value,key) for (key,value) in word_index.items()])
    ## 解码函数
    def decode_review(text):
        return ' '.join([reverse_word_index.get(i-3, '?') for i in text])

    样例

    decode_review(trian_data[0])

    "? this film was just brilliant casting location scenery story direction everyone's really suited the part they played and you could just imagine being there robert ? is an amazing actor and now the same being director ? father came from the same scottish island as myself so i loved the fact there was a real connection with this film the witty remarks throughout the film were great it was just brilliant so much that i bought the film as soon as it was released for ? and would recommend it to everyone to watch and the fly fishing was amazing really cried at the end it was so sad and you know what they say if you cry at a film it must have been good and this definitely was also ? to the two little boy's that played the ? of norman and paul they were just brilliant children are often left out of the ? list i think because the stars that play them all grown up are such a big profile for the whole film but these children are amazing and should be praised for what they have done don't you think the whole story was so lovely because it was true and was someone's life after all that was shared with us all"

    显而易见train_data[0]是个好评

    train_labels[0]
    output: 1

    不过这只是个开始,还要考虑每个评论长短不一的问题,因为神经网络的输入要求长度相同,所以在此需要处理一下数据

    准备数据

    先把列表转换成张量

    1. 填充列表
    2. 用one-hot编码,将整个列表转为0和1的向量,比如序列[3,5],在转为10000维的向量的时候,只有索引3,5下才是1,其他是0

    以下是one-hot的代码,跟着书本上来的

    import numpy as np
    def vectorize_sequence(sequence,dimension=10000):
        results = np.zeros((len(sequence),dimension)) ## 创建一个形状为(len(sequence),dimension)的零矩阵
        for i,sq in enumerate(sequence):
            results[i,sq] = 1.
        return results
    x_train = vectorize_sequence(train_data)
    x_test = vectorize_sequence(test_data)
    ## 将labels向量化
    y_train =np.asarray(train_labels).astype('float32')
    y_test = np.asarray(test_labels).astype('float32')

    构建网络

    先用Keras构建一个3层的神经网络

    from keras import models
    from keras import layers
    model = models.Sequential()
    ## 构建输入层,设置16个输入单元,并设置10000维的输入张量,激活函数就relu吧
    model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))
    ## 隐藏层,设置16个隐藏单元,同样activation为relu
    model.add(layers.Dense(16,activation='relu'))
    ## 输出层,仅包含一个单元,因为就是输出判断好评与否,因为要控制在0-1之间所以激活函数是sigmoid
    model.add(layers.Dense(1,activation='sigmoid'))

    验证方法

    在此我们设置一个验证集,之前听说过训练集以及测试集,在这里验证集就是一个衡量的标准吧

    x_val = x_train[:10000]
    partial_x_train=x_train[10000:]
    y_val = y_train[:10000]
    partial_y_train = y_train[10000:]

    训练模型

    from keras import losses
    from keras import metrics
    from keras import optimizers
    ## 编译模型,优化器选择rmsprop,损失函数选择二叉熵
    model.compile(optimizer = 'rmsprop',
                 loss = 'binary_crossentropy',
                 metrics=['accuracy'])
    
    
    history = model.fit(partial_x_train,
                        partial_y_train,
                        epochs=20,
                        batch_size=512,
                        ## 验证数据传入validation_data来完成
                        validation_data=(x_val,y_val))

    绘制训练损失和验证损失

    import matplotlib.pyplot as plt
    history_dict=history.history
    loss_values = history_dict['loss']
    val_loss_values = history_dict['val_loss']
    epochs = range(1,len(loss_values)+1)
    plt.plot(epochs,loss_values,'bo',label='Training loss')
    plt.plot(epochs,val_loss_values,'b',label='Validation loss')
    plt.title('Training and validation loss')
    plt.xlabel('Epochs')
    plt.ylabel('Loss')
    plt.legend()
    plt.show()

    如下图所示:
    loss1
    图中,圆点是Train loss,折线是Validation loss,可见周期越大,训练的损失越小,但验证损失却在大约第四轮之后变大了,这就是overfit了,因此我们这里只用4次的epoch就可以达到最优了


    从头训练一个模型

    这里我们让epochs=4

    model = models.Sequential()
    model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))
    model.add(layers.Dense(16,activation='relu'))
    model.add(layers.Dense(1,activation='sigmoid'))
    model.compile(optimizer='rmsprop',
                 loss ='binary_crossentropy',
                 metrics=['accuracy'])
    model.fit(x_train,y_train,epochs=4,batch_size=512)
    results = model.evaluate(x_test,y_test)

    得到的结果是:
    result
    这里的精度是88%左右并可以用以下代码查看评论是否正面

    model.predict(x_test)

    看《Pythons深度学习》之后,给自己做的一个笔记
    其中也借鉴了下
    https://blog.csdn.net/qq_20084101/article/details/82054749

    转载于:https://www.cnblogs.com/drake233/p/10126934.html

    展开全文
  • 2.图像二分类代码测试 创建数据集 模型训练 模型测试 使用tensorboard 3.可能出现的问题 模型拟合得不好 随机测试结果有问题 1.环境搭建 本教程的系统:Windows10,其他系统兼容性未知。 需安装:Python 3...

    目录

     

    1.环境搭建

    安装Anaconda

    如何使用Jupyter Notebook

    安装TensorFlow

    安装OpenCV

    2.图像二分类代码测试

    创建数据集

    模型训练

    模型测试

    使用tensorboard

    3.可能出现的问题

    模型拟合得不好

    随机测试结果有问题


    1.环境搭建

    本教程的系统:Windows10,其他系统兼容性未知。

    需安装:Python 3.5.2 :: Anaconda 4.2.0 (64-bit),

    TensorFlow 1.13.1 ,OpenCV 4.0.1

     

    资料下载链接:(包括安装包、代码、数据集等)

    链接:https://pan.baidu.com/s/1Fjlr3DUovYotOhZUlDwYiA

    提取码:veqi

     

    安装Anaconda

    右键点击管理员方式运行Anaconda的安装包。

    一直点击默认按键进入下一步。

    勾选两个框添加环境变量和安装对应版本的Python。

    然后点击install安装,等待一段时间(时间较长,耐心等待!)

    如何使用Jupyter Notebook

    安装完成后,就可以打开jupyter,点击屏幕左下角Windows按钮,找到如下图所示位置点击打开Jupyter Notebook。

    默认浏览器中显示如下:

    当前是默认路径下的文件内容,一般是C:\Users\Administrator,或是C:\Users\Administrator\Documents,这个路径可以进行更改,更改方式:

    打开命令提示符输入:

    jupyter notebook --generate-config

    在如下路径下找到生成的jupyter_notebook_config.py文件,使用编辑工具打开,如:记事本

    使用Ctrl+F查找“NotebookApp.notebook_dir”,去掉前面的符号‘#’,单引号中更改为自己想要更改的路径,如下图,更改后按下Ctrl+S保存即可。

    更改路径可能出现打开jupyter命令行后闪退的情况,出现这种情况建议不对默认路径进行更改,重新运行一次jupyter notebook --generate-config命令即可正常运行。或是另寻它法解决闪退问题,这里不做赘述。本教程之后会继续使用默认路径。

    打开jupyter的home页面,选择右上角如图所示位置,点击python[default]新建一个文件。

    弹出新窗口后在编辑框中输入代码:

    print('hello world!')

    光标停留在该cell中,按shift+Enter键运行。或在菜单栏中选择"Cell->Run Cells"。

    如果没有报错,则表示能正常运行!

    安装TensorFlow

    在编辑框中输入:

    import tensorflow as tf

    发现报错,这是因为没有安装TensorFlow模块。

    管理员方式打开命令提示符,在命令行中输入

    pip install tensorflow

    按下回车键等待安装。

    安装完成后重新测试,没有出现报错。

    在jupyter上测试:

    在命令行中测试:

    安装OpenCV

    打开命令提示符输入:

    pip install opencv-python

    输入测试代码,按下shift+enter键运行该Cell后显示如下图:

    如果没有报错,则表示OpenCV安装完成!

    2.图像二分类代码测试

    将上面所提供的链接中的代码下载下来放到jupyter的默认路径下

    创建数据集

    这里只对训练集进行制作。不使用测试集对模型进行测试,直接选择一些图像导入模型进行测试,显示测试结果,使之看起来更加直观。

    将下载的训练集压缩包train_data和代码图像二分类.ipynb放到jupyter的默认路径下,将train_data解压到当前目录,如下图所示。

    使用jupyter打开并运行制作数据集的代码Create_TFRecord.ipynb

    运行完毕后train_data文件夹下会生成一个后缀为tfrecords的文件,如果已经有则覆盖原来的文件,该文件中存放的就是“ball”文件夹和“others”文件夹中的图片打上标签后的数据流,会在训练模型时用到。“output”文件夹中存放的是从前面两个文件夹中随机抽取的一些图片,用于进行模型测试。

    模型训练

    打开并运行代码图像二分类.ipynb

    可能会运行较长的一段时间,电脑的CPU占用会变得很高,这个时候操作电脑会比较卡顿,可以先耐心等待。

    模型训练结果:

    模型保存位置如下图所示:

    模型测试

    随机选择样本测试:

    使用“output”文件夹中的图片进行测试,这里面的图片是从训练集中随机挑选的,也可以自行使用其他BMP格式的24*24分辨率的图片进行测试。

    使用tensorboard

    代码图像二分类.ipynb运行完毕后会发现在jupyter的默认目录下多出了一个名为logs的文件夹,如下图所示,该文件夹下存放的文件可以使用tensorboard.exe打开,让模型可视化。

    打开命令提示符,输入命令:

    cd C:\Program Files\Anaconda3\Scripts

    跳转到tensorboard.exe的目录下,然后输入命令:

    tensorboard.exe --logdir=C:\Users\Administrator\Documents\logs

    点击回车后会发现出现一个网址,复制该地址,使用浏览器打开,推荐使用Firefox,使用Google浏览器可能会出现无法打开的情况。

    然后可以发现模型长这样~

    为什么长这样呢?

    模型的结构名称在代码中的对应位置:(这些名称可以自己随意更改)

    3.可能出现的问题

    模型拟合得不好

    可能准确率会更糟糕!

    模型在训练完成后,可能出现准确率不是很高的情况,这时可以尝试重新生成一次数据集或者重新运行一次读取训练集的代码块再进行训练。代码块在这里:

    随机测试结果有问题

    测试结果可能会出现全部为0或是全部为一的情况,解决办法:关闭jupyter的命令行和浏览器中的所以jupyter页面,重新打开jupyter并运行代码图像二分类.ipynb。如果只有个别图片出现类别判断错误属于正常现象。

    像这样:

    展开全文
  • 二分类数据集全部预测到了同一类

    千次阅读 2020-04-24 23:08:46
    之前设置了0.1, 0.01,0.0001,0.00001进行训练,但全数据集全部预测到了同一类。 检查 从权重开始检查,发现学习率为0.1的时候,第一个epoch的模型权重就已经很小很小了,目前猜测是学习率太大,现在从0.0000001...

    情况描述:

    之前设置了0.1, 0.01,0.0001,0.00001的学习率,也尝试了不同的batchsize进行训练,但全数据集全部预测到了同一类。

    检查步骤:

    1.从权重开始检查,发现学习率为0.1的时候,第一个epoch的模型权重就已经很小很小了,目前猜测是学习率太大,导致权重降的很快,现在从0.0000001开始试。

    2.和师姐的baseline代码对比,发现我没有进行RandomOverSampler。任务是2分类,数据集是不平衡的,label数量是1:3。所谓over-sampling,我们可以理解为将少的一部分样本进行重采样,使其变多。(这里重采样的方式会有很多) 比如说trainset有9924张,标签为1的有7583张,标签为0的有2341张,它会把标签为1的扩充到7583张,使得整个数据集有15166张。

    3.进行了数据集平衡后,尴尬的事发生了,train accuray 和 test accuracy都为0.5,网络输出的标签都是1,说明了不是数据集样本不平衡的问题。猜测是初始化权重的问题,如果一个神经网络层的权重非常小,那么在反向传播算法就会计算出很小的梯度(因为梯度gradient是与权重成正比的)。

    4.接下来查看了第1个epoch和第27个epoch模型的权重参数,发现参数是更新了的,说明模型的梯度没有消失。

    5.检查图像的输入,每个batch的图像会不会是同一张图像,经检查发现图像加载没有问题。而且所有的图像也都经过了归一化处理

    总结:

    试了常见的学习率后,结果仍一点都不变,一定要及时检查更新的权重、梯度。设置BN层归一化。初始化权重尽量不要太小,导致梯度消失。不平衡的数据集也要进行平衡。

    展开全文
  • 电影评论分类:二分类问题(IMDB数据集

    万次阅读 多人点赞 2018-09-13 10:14:24
    IMDB数据集是Keras内部集成的,初次导入需要下载一下,之后就可以直接用了。 IMDB数据集包含来自互联网的50000条严重两极分化的评论,该数据被分为用于训练的25000条评论和用于测试的25000条评论,训练集和测试集...
  • Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集&预测新数据点 目录 输出结果 实现代码 输出结果 实现代码 # coding...
  • 在学习 SVM 时发现自己没能很好地理解在线性模型中充当决策函数角色的符号函数Sign(),说明对线性模型的理解还不够到位,下面主要梳理一下对数据集“线性可分”概念以及其它相关概念的一些理解,大概按照下面思路...
  • 这是一篇亲试可行的文章,记录了我在完成对自制数据集进行二分类的过程。我很开心自己的能感受到自己的进步~话不多说,直接开始吧。 一、数据处理 我的数据集是两个文件的图片,由于文件的名字十分复杂不太好用,...
  • ML之分类预测之ElasticNet:利用ElasticNet回归对二分类数据集构建二分类器(DIY交叉验证+分类的两种度量PK) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 #(4)交叉...
  • #Keras之DNN:基于Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN实现分类预测概率——DIY二分类数据集&预测新数据点 目录 输出结果 实现代码 输出结果 实现代码 # coding:utf-...
  • #逻辑回归实现之前的乳腺癌数据集分类预测 from sklearn import datasets from sklearn.cross_validation import train_test_split from sklearn.linear_model import LogisticRegression cancer =datasets.load_...
  • ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 for iStep in range(nSteps): lam ...
  • 一、实验内容 ...本次实验目的是用Bp神经网络对iris数据集进行分类,并进行分析。 、实验过程 1.将数据集加载到工作区:load iris.dat; 2.数据预处理 (1)将原始iris数据集随机抽取118行作为训练数...
  • 图像分类数据集下载地址

    千次阅读 2019-04-25 17:23:24
    https://blog.csdn.net/yangdashi888/article/details/70503874 https://blog.csdn.net/fendouaini/article/details/79871922
  • 利用Python生成双月分类数据集

    千次阅读 2018-10-04 00:30:57
    1、定义生成函数(来源于网络) def dbmoon(N=100, d=2, r=10, w=2): N1 = 10*N w2 = w/2 done = True data = np.empty(0) while done: #generate Rectangular data tmp_x = 2*(r+w2)*(np.ra...
  • 关于文本分类(情感分析)的英文数据集汇总 20 Newsgroups数据集: The 20 Newsgroups data set is a collection of approximately 20,000 newsgroup documents, partitioned (nearly) evenly across 20 different ...
  • 文本分类(一) | (2) 数据集及预处理

    千次阅读 2019-12-19 19:23:32
    我们的文本分类系统使用的是THUCnews数据集。 目录 1. 数据集简介 2. 数据预处理 3. 具体细节 1. 数据集简介 THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档...
  • ML之分类预测之ElasticNet之OPLiR:在二分类数据集上训练OPLiR模型(T1) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 #对属性程度进行排列 nzList = [] for iAlpha ...
  • 这是笔者学习opencv中svm的一个小例子,数据集是用sk-learn库中的函数生成的。功能就是对该数据进行二分类。 为了学习的更深入,笔者将svm常用的四种核,linear,inter,sigmoid,rbf作了对比。 详细步骤见代码 二、...
  • 关于文本分类(情感分析)的中文数据集汇总

    万次阅读 多人点赞 2019-07-14 16:08:14
    文本分类(情感分析)中文数据集汇总 这段时间在公司NLP组里实习,相应的开始学习了一些NLP的知识,并搜索了一些关于NLP中文本分类领域的相关数据集,本文主要列举一些中文数据集。关于英语数据集,且听下回分解。 1...
  • Sklearn提供的常用数据集

    万次阅读 多人点赞 2018-06-07 20:41:50
    1) 鸢尾花数据集:load_iris():用于分类任务的数据集2) 手写数字数据集:load_digits():用于分类任务或者降维任务的数据集3) 乳腺癌数据集load-barest-cancer():简单经典的用于二分类任务的数据...
  • ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、支持向量机(SVM_Linear、SVM_Rbf)、LDA线性判别分析算法进行二分类预测(决策边界可视化) 目录 基于自定义数据集利用...
  • https://blog.csdn.net/qq_32892383/article/details/82225663
  • ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树可视化 目录 实现结果 实现代码 实现结果 实现代码 import xgboost as xgb import pandas as pd ...
  • 利用PyTorch自定义数据集实现猫狗分类

    千次阅读 热门讨论 2019-06-30 21:06:10
    看了许多关于PyTorch的...这里我采用从Kaggle上下载的猫狗数据集,利用自定义数据集训练自己的二分类神经网络。 解压后,一个文件里面有12500张图,猫狗各一半,文件名类似于这样:cat.0.jpg、dog.12499.jpg 因...
  • 七、(4)逻辑回归——二分类法,预测乳腺癌数据

    千次阅读 多人点赞 2019-05-26 22:17:09
    七、(3)逻辑回归——二分类法,预测乳腺癌数据 乳腺癌数据集下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data 下载的数据为data格式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 328,087
精华内容 131,234
关键字:

二分类数据集