天池試合学習ノート——sklearn+機械学習を用いて分類/回帰任務の(一)データの読み取りと分析を行う

15949 ワード

一、データ読取
データ処理の際、最も一般的なファイルフォーマットは.csv.txtです.私たちは主にpandasのread_を使用しています.csvでデータを読み出します.read_csvのドキュメントのURLは次のとおりです.http://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#io-read-csv-table
read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

そのパラメータは多く、ここではよく使われるいくつかのパラメータだけを紹介します.
  • filepath_or_buffer:csvまたはtxtファイルを読み取るパス、URLなど.
  • sep:区切り記号、strを指定し、read_の場合csvデフォルト',';read_の場合table,デフォルト\t.
  • delimiter:デリミタ、代替セパレータ、str、デフォルト'None'、このパラメータを指定するとsepパラメータは失効する.
  • header:int or list or ints、デフォルト"infer",数行目から列名として開始する、およびデータの読み取りを開始し、第1行目の列名は'0'に設定、列名がない場合は'None'に設定.Row number(s) to use as the column names, and the start of the data.
  • index_col:int or sequence or False、デフォルトNone、行インデックスとして使用する列番号または列名、1つのシーケンスが与えられると複数の行インデックスがある.Column to use as the row labels of the DataFrame.
  • encoding:str、デフォルト'None'、文字セットタイプを指定し、通常'utf-8'として指定する.
  • names:array-like、デフォルト'None'、使用する列名は、元の列名に代わることができる(もしあれば).list of column names to use. If file contains no header row, then you should explicitly pass header=None.

  • 一般的なデリミタは次の表のとおりです.
    アイコン
    マッチ
    \s
    空白文字
    \t
    タブ
    \f
    ページ変更
    \r
    リターンキャラクタ
    改行
    \v
    垂直タブ
    コードの例:
    import pandas as pd
    filename = 'data.csv' #      
    names = ['a','b','c','d','e','f','g','h','class'] #     
    data = pd.read_csv(filename,names=names) #    ,      data
    

    統計データ情報
    あまり話さないで、直接コードをつけます.
    print(data.shape) #    , * 
    print(data.head(5)) #   5 
    print(data.dtypes) #              
    print(data.describe()) #         ,mean,std,min,25%   ,50%   ,75%   ,max   
    print(data.groupby('class').size()) #      ,         ,         
    print(data.skew()) #             ,           ,0       
    

    データの表示
  • data.plot data.plot関数の詳細は他人のブログを見ることができる://blog.csdn.Net/brucewong 0516/article/details/80524442ここではコードの例としてのみ
  • data.plot(kind='density',subplots=True,layout=(3,3),sharex=False) #   
    
    kindパラメータは、ビジュアル化図のタイプを表し、主なタイプは以下のとおりです.
    パラメータ
    を選択します.'line'
    折れ線グラフ'bar'
    棒グラフ'hist'
    横棒図'box'
    柱状図'kde'
    箱線図'density'
    みつど図'pie'
    円グラフ'scatter'
    散点図'kde'
    Kernelの密度推定図
  • 相関マトリクスマップ相関マトリクスマップは、2つの異なる属性が互いに影響する程度を示すために使用され、2つの属性が同じ方向に変化すると順方向に変化する.
    import numpy as np
    import matplotlib.pyplot as plt 
    
    corr = data.corr() #      
    figure = plt.figure()
    ax = figure.add_subplot(111)
    cax = ax.matshow(corr, vmin=-1, vmax=1)
    figure.colorbar(cax)
    ticks = np.arange(0, 8, 1)
    ax.set_xticks(ticks)
    ax.set_yticks(ticks)
    ax.set_xticklabels(names)
    ax.set_yticklabels(names)
    plt.show()
    
    私が読み込んだデータを例にとると、絵の画像は以下の通りです:
  • 天池赛学习笔记——使用sklearn+机器学习进行分类/回归任务之(一)数据读取和分析_第1张图片
  • の散点行列図は複数の変数の相関関係を考察する時、一つ一つ描くのが面倒で、散点行列は各変数間の散点図を描いた.コード例:
    from pandas.plotting import scatter_matrix
    scatter_matrix(data)
    
  • 次のいくつかのブログでは、データセット区分、データ前処理、特徴工学、分類回帰アルゴリズム、モデル評価について説明します.