美文网首页机器学习IT@程序员猿媛
python数据处理一些函数使用

python数据处理一些函数使用

作者: 追求科技的足球 | 来源:发表于2019-05-06 16:16 被阅读2次

    1、首先读入数据需要的就是pandas和read了,读入后查看数据用.head()方法:

    import pandas as pd
    data = pd.read_csv("路径")
    data.head()
    

    2、TF-IDF转化

    from sklearn.feature_extraction.text import TfidfVectorizer
    tf_idf = TfidfVectorizer()
    tf_idf.fit_transform(data)
    

    其中参数:
    (1)max_df: 浮点型范围 [0.0, 1.0] 或整形, 默认1.0
    当构建词汇表时,严格忽略高于给出阈值的文档频率的词条,语料指定的停用词。如果是浮点值,该参数代表文档的比例,整型绝对计数值。

    (2)min_df:浮点型范围 [0.0, 1.0] 或整形, 默认1.0
    当构建词汇表时,严格忽略低于给出阈值的文档频率的词条,语料指定的停用词。如果是浮点值,该参数代表文档的比例,整型绝对计数值。

    (3)stop_words:string {‘english’}, list, or None(default)
    ①如果为english,用于英语内建的停用词列表。
    ②如果为list,该列表被假定为包含停用词,列表中的所有词都将从令牌中删除。
    ③如果None,不使用停用词。max_df可以被设置为范围[0.7, 1.0)的值,基于内部预料词频来自动检测和过滤停用词。

    (4)ngram_range: tuple(min_n, max_n)
    要提取的n-gram的n-values的下限和上限范围,在min_n <= n <= max_n区间的n的全部值

    (5)tokenizer:callable or None(default)
    当保留预处理和n-gram生成步骤时,覆盖字符串令牌步骤

    (6)use_idf:boolean, optional
    启动inverse-document-frequency重新计算权重

    (7)smooth_idf:boolean,optional
    通过加1到文档频率平滑idf权重,为防止除零,加入一个额外的文档

    (8)sublinear_tf:boolean, optional
    应用线性缩放TF,例如,使用1+log(tf)覆盖tf

    (9)strip_accents: {‘ascii’, ‘unicode’, None}
    在预处理步骤中去除编码规则(accents),”ASCII码“是一种快速的方法,仅适用于有一个直接的ASCII字符映射,”unicode”是一个稍慢一些的方法,None(默认)什么都不做

    3、Logistic Regression

    from sklearn.linear_model import LogisticRegression
    re = LogisticRegression(C=4,dual=True)
    re.fit(x_train,y)
    

    参数:
    (1)dual:
    布尔型,默认:False。当样本数>特征数时,令dual=False;用于liblinear解决器中L2正则化。当n_samples> n_features时,首选dual = False。
    (2)C
    浮点型,默认:1.0;其值等于正则化强度的倒数,为正的浮点数。数值越小表示正则化越强。

    4、生成随机数

    import numpy as np
    np.random.seed(seed)
    import random
    random(seed)
    

    seed:使得随机数据可预测,即只要seed的值一样,后续生成的随机数都一样。

    5、 系统变量

    import os
    os.environ['PYTHONHASHSEED'] = '0'
    

    environ是一个字符串所对应环境的映像对象,这里主要是为了禁止hash随机化,使得实验可复现。

    6、随机种子

    import torch
    torch.manual_seed(args.seed)#为CPU设置随机种子
    torch.cuda.manual_seed(seed)#为当前GPU设置随机种子
    torch.cuda.manual_seed_all(seed)#为所有GPU设置随机种子
    

    7、结合4、5、6,在pytorch中,要使每次结果都相同可以复现,需作如下操作:

    def set_seed(seed=100):
        random.seed(seed)
        os.environ['PYTHONHASHSEED'] = str(seed)
        np.random.seed(seed)
        torch.manual_seed(seed)
        torch.cuda.manual_seed(seed)
        torch.backends.cudnn.deterministic = True
    

    8、建立ndarray数组:

    np.asarray()
    

    将结构数据转化为ndarray,主要区别在于 np.array (默认情况下)将会copy该对象,而 np.asarray 除非必要,否则不会copy该对象

    9、字符串处理

    str.strip([chars]):  #chars -- 移除字符串头尾指定的字符序列。
    

    返回移除字符串头尾指定的字符生成的新字符串。

    10、pytorch

    optimizer  = torch.optim.Adam()
    scheduler = torch.optim.lr_scheduler.LambdaLR()
    scheduler.step()
    nn.Module
    torch.nn.Embedding()
    nn.Parameter
    nn.MSELoss
    
    

    (1)torch.optim是一个实现了多种优化算法的包,大多数通用的方法都已支持,提供了丰富的接口调用,Adam()为Adam优化器
    (2)lr_scheduler.LambdaLR()为学习率调整
    (3)所有的optimizer都实现了step()方法,这个方法会更新所有的参数。
    (4)torch.nn是专门为神经网络设计的模块化接口。nn构建于autograd之上,可以用来定义和运行神经网络。nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法。

    定义自已的网络:
        需要继承nn.Module类,并实现forward方法。
        一般把网络中具有可学习参数的层放在构造函数__init__()中,
        不具有可学习参数的层(如ReLU)可放在构造函数中,也可不放在构造函数中(而在forward中使用nn.functional来代替)
        只要在nn.Module的子类中定义了forward函数,backward函数就会被自动实现(利用Autograd)。
        在forward函数中可以使用任何Variable支持的函数,毕竟在整个pytorch构建的图中,是Variable在流动。还可以使用if,for,print,log等python语法.
    

    参考:https://blog.csdn.net/u012609509/article/details/81203436

    (5)一个矩阵类,里面初始化了一个随机矩阵,矩阵的长是字典的大小,宽是用来表示字典中每个元素的属性向量,向量的维度根据你想要表示的元素的复杂度而定。类实例化之后可以根据字典中元素的下标来查找元素对应的向量。
    参考:https://blog.csdn.net/tommorrow12/article/details/80896331
    (6)一种变量,当把它赋值给一个Module时,被自动地注册为一个参数
    (7)比较简单的损失函数,它计算输出和目标间的均方误差

    没写完,随时补

    相关文章

      网友评论

        本文标题:python数据处理一些函数使用

        本文链接:https://www.haomeiwen.com/subject/shvngqtx.html