zoukankan      html  css  js  c++  java
  • 数据分析------数据处理(2)及 AutoML 学习

    ----------------接上一篇《数据分析------数据处理(1)》https://www.cnblogs.com/lifengB511/p/10848862.html--------------

    5、插入记录与修改记录

    5.1 插入记录

      Pandas里并没有直接指定索引的插入行的方法,需要用户自行设置。

      代码如下:

    In[1]: import pandas as pd
             df = pd.DataFrame({'a': [1,2,3], 'b':['a','b','c'], 'c':["A","B","C"]})
             df
    Out[1]:
         a  b  c
    0    1  a  A
    1    2  b  B
    2    3  c  C
    
    In[2]:line = pd.DataFrame({df.columns[0]:"--", df.columns[1]:"--", df.columns[2]:"--"} index = [1])
            line
    Out[2]:
         a   b   c
    0    --  --  --
    
    In[3]: df0 = pd.concat([df.loc[:0] , line , df.loc[1:]]) #执行插入line的语句,在索引为0和1之间插入
    df0
    Out[3]:
         a   b   c
    0    1   a   A
    1    --  --  --
    1    2   b   B
    2    3   c   C

      注意:df.loc[:0] 不能写成 loc[0] ,因为 df.loc[0] 表示抽取 index=0 的行,返回的是 Series 而不是  DataFrame 。

      插入过后,df0 的索引和之前的有重复,需要对索引重新设定,方法如下:

      (1)reset_index() 函数给出新的索引,原索引将作为新增加的 index 列,再对新增加的列使用 drop() 函数,删除新增的 index 列。

      (2)直接对 reset_index() 函数添加 drop=True 参数,即可。

      (3)先找出 df0 的索引长度:lenth=len(df0.index),再利用整数序列函数生成索引:range(lenth),然后把生成的索引赋值给 df0.index 。

    5.2 修改记录

    (1)整体替换

      整列、整行的替换,直接替换即可。

    (2)个别修改

      把 df 中的 NaN 替换成 0 便于计算,类似 word 的查找替换。

      ① 单值替换:df.replace('B' , 'A') ,用 A 替换 B,也可以用 df.replace({'B' : 'A'}) 实现;

      ② 指定列单值替换:df.replace({'列1' : '值1' ,'列2' : '值2'} , 0) ,用 0 替换列1 中的值1,以及列2 中的值2 。

      ③ 多值替换:df.replace(['B' , 'A'] , ['b' , 'a']),用 b 替换 B,a 替换 A 。

    6、交换行或列

      直接使用 df.reindex 方法交换数据中的两行或者两列。

      代码:

    In[1]: import pandas as pd
             df = pd.DataFrame({'a': [1,2,3], 'b':['a','b','c'], 'c':["A","B","C"]})
             df
    Out[1]:
         a  b  c
    0    1  a  A
    1    2  b  B
    2    3  c  C
    
    In[2]: hang = [0 ,2, 1]
            df.reindex(hang)  #交换行数据
    Out[2]:
         a  b  c
    0    1  a  A
    2    3  c  C
    1    2  b  B
    
    In[3]: lie = ['a' ,'b' ,'c']
           df.reindex(columns = lie)  #交换列数据
    Out[3]:
         a  c  b  
    0    1  A  a  
    1    2  B  b  
    2    3  C  c  

    7、排名索引

    7.1 sort_index:重新排序

      Series 的 sort_index(ascending=True) 方法可以对 index 进行排序操作,ascending 参数用于控制升序(ascending=True)或降序(ascending=False),默认升序。

      DataFrame 中,sort_index(axis=0, by=None, ascending=True) 方法多了一个轴向的选择参数与一个 by 参数,by 参数是针对某一列或某一些进行排序(不能对行使用 by)。

    In[1]: from pandas import DataFrame
             dt0={'Ohio': [0, 6,3], 'Texas': [7, 4, 1], 'California': [2,8, 5]}
             df = DataFrame (df0, index=['a','d','c'])
             df
    Out[1]:
        California Ohio Texas
    a    2     0  7
    c    8       6  4
    d    5     3  1
    In[2]: df.sort_index()#默认按 index 升序排序,降序: df.sort_index(ascending=False)
    Out [2]:
      California Ohio Texas
    a  2      0   7
    c  5      3   1
    d  8      6   4
    In[3]:df.sort_index(by='Ohio')#按 Ohio 列升序排序,也可以是多列 by=['Ohio', 'Texas']
    Out[3]:
      California Ohio Texas
    a    2    0   7
    c    5    3   1
    d    8    6   4
    In[4]: df.sort_index(by=['California','Texas'])
    Out[4]:
      California ohio Texas
    a    2    0   7
    c    5    3   1
    d    8    6   4
    In[5]: df.sort_index(axis=1)
    Out[5]:
      California ohio Texas
    a    2    0   7
    c    8    6   4
    d    5    3   1

      注意:排名方法(Series.rank(method='average', ascending=True))与排序的不同之处:排名方法会把对象的 values 替换成名称(从 1 到 n ),对于平级项可以通过该方法里的 method 参数来处理,method 参数有四个可选项:average、min、max、first 。

     7.2 reindex:重新索引

      Series 对象的重新索引通过其 reindex(index=None, **kwargs) 方法实现。**kwargs 中常用的参数有两个:method=None 和 fill_value=np.NaN 。reindex() 方法会返回一个新对象,其 index 严格遵循给出的参数,method:{'backfill', 'bfill', 'pad', 'ffill', None} 参数用于指定插值方式,当没有给出时,默认用 fill_value 填充,值为 NaN(ffill=pad,bfill=back fill,分别指插值时向前还是向后取值)。

      参数说明:pad/ffill :用前一个非缺失值去填充该缺失值;backfill/bfill :用下一个非缺失值填充该缺失值;None:指定一个值去替换缺失值。

    ---set_index:重置索引

    ---reset_index:索引还原

    ———————————————分割线———————————————

    (自动机器学习)AutoML 

      主要是介绍本文主要内容:

      第一章:初步介绍了AutoML的相关概念及发展历程

      第二章:给出了自动构建机器学习框架的数学健全公式。

      第三章:介绍了决定机器学习框架的不同方法。

      第四章:从理论上解释了机器学习模型选择和超参数优化的各种方法。

      第五章:介绍了自动数据清洗的方法。

      第六章:介绍了特征工程的方法。

      第七章:解释了提高生成的机器学习框架性能和减少优化运行时间的措施。

      第八章:简要介绍了现有的AutoML的实现及其框架。

      第九章:根据各种数据集对这些框架进行评估。

      第十章:提出了如何进一步研究AutoML的观点。

      第十一章:作了简短的结论。

    第一章 简介

      AutoML 旨在通过自动化提高构建ML应用程序,可以自动化执行一些任务,提高效率,比如超参数优化(hyperparameter optimization HPO),这样该领域的专家就可以自己构建机器学习框架(ML pipelines),而不必依赖于数据科学家。

      从 20 世纪 90 年代开始,commercial 脸部识别为网格搜索选择的分类算法提供了自动实现超参数优化 (HPO) (Dinsmore, 2016)。

      2004 年,首次提出了超参数优化的有效策略。对于模拟的设置,例如对支持向量机 (SVM) 的 C 和 γ 进行调优 (Chen et al.2004),证明了引导搜索策略比网格搜索在更短的时间内可以产生更好的结果。

      同样在 2004 年,第一个用于自动选择特征的方法已经发布 (Samanta, 2004)。全模型选择 (Escalante et al.,2009) 是第一次尝试自动构建完整的机器学习框架,通过在调整每种方法超参数的时候,同时选择预处理方法、选择特征和分类算法。通过在各种数据集上测试这种方法,也证明了这种方法在未知领域的潜力 (Guyon et al.,2008)。

      2011年开始,提出了许多将贝叶斯优化应用于超参数优化 (Bergstra et al.,2011,Snoek et al.,2012) 和模型选择 (Thornton et al.,2013) 上的方法。

      2015年,提出了第一个无该领域知识的自动选择特征工程的方法 (Kanter and Veeramachaneni, 2015)。自

      2016年以来,可以建造任意形状的机器学习框架 (Olson and Moore, 2016)。

      在2017年和2018年,随着全球各大厂商发布的商业化 AutoML 解决方案 (Golovin et al.,2017;Clouder, 2018;Baidu,2018),AutoML这个话题受到了大量媒体的关注(Google,2019)。同时,AutoML领域的研究取得了显著的进展,导致许多性能得以改进。最新方法能够将AutoML应用程序的运行时间从几小时减少到几分钟(Hutter et al..2018)。

    ---接下来还将继续学习数据分析相关知识以及 AutoML 后续知识。

  • 相关阅读:
    ES6
    JavaScript小练习2
    JavaScript实现多重继承
    一个定高,一个高度自适应的布局
    实例教程:1小时学会Python(转)
    备份文件的python脚本(转)
    Python2.5/2.6实用教程:基础篇(转)
    Python 读写 Excel(转)
    python实用技巧 : Filtering os.walk(转)
    Python:文件操作技巧(File operation)(转)
  • 原文地址:https://www.cnblogs.com/lifengB511/p/10888342.html
Copyright © 2011-2022 走看看