数据分析------数据处理(2)及 AutoML 学习

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

五、插入记录与修改记录

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)总体替换优化

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

(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 。

六、交换行或列

  直接使用 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.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 后续知识。

相关文章
相关标签/搜索