紙媒体で管理するとなくなりがちなのでブログで進捗などを管理することにしました
※殆どの記事は自分自身のためだけにかいています.他人に見せられるレベルには至っていません...

Python

【Windows】Anaconda環境にOpenCVを入れる

https://anaconda.org/conda-forge/opencv これの通り

【Python】 辞書のkeyとvalueを反対にする

辞書のkeyとvalueを変えた辞書は先頭にinv_とつける慣習があるらしい. alphabet = {i:c for i,c in zip(range(4),["a","b","c","d"])} # {0: 'a', 1: 'b', 2: 'c', 3: 'd'} inv_dict = {v:k for k,v in alphabet.items()} # {'a': 0, 'b': 1, 'c': 2, 'd': 3}

【Python】 リストをシャッフルする

Pythonでリストの要素をシャッフルする import random print(type(a))# list random.shuffle(a)

【Python】 confusion_matrtixの作り方

seabornのheatmapによって表現できる. import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # scikit-learnのconfusion_matrixクラスで b = np.array([[251, 22, 1, 3, 0, 1, 3, 16, 24], [ 8, 459, 0, 2, 0, 1,…

【pandas】 DataFrameの操作について

Irisで試す # データCSVの読み込み iris = pd.read_csv("input.csv") # データのある特徴列を削除する iris.drop("Id", axis=1, inplace=True) # 同データのカウント # ”Species”という特徴列の名義特徴量の種類をそれぞれカウント iris["Species"].value_co…

【Python】 Jupyter notebookで実行に影響のない警告は無視する

warning.filterwarning("ignore")により警告を無視して進めることができる. import warnings warning.filterwarnings("ignore")

特徴量の削除

violinplotによって特徴量の分布が同じようなときjointplotによって, それらの特徴量の相関関係を調べる. 実際に相関係数の絶対値が1に近づいたらどちらかの特徴量を学習から削除することができるそう. 上図で2つの特徴量の分布が同じようなのでjointplotを…

【seaborn】 相関関係を可視化する

seaborn.jointplot(特徴量列1, 特徴量列2)で相関関係を見ることができる. 【参考】 ・http://blog.livedoor.jp/oyajieng_memo/archives/1524575.html

【seaborn】 plotについて

seabornライブラリでデータを可視化したい場合, BoxplotとViolinplotなどがある. ラベルAとラベルBの正規化, 標準化済の特徴量3つをとってきて比較することに用いられる. Boxplotでは下図のような図をプロットでき, 中央値などがわかりやすい. (図引用: http…

【pandas】 DataFrame.locについて

グラフの列の値を読み取る >>> df.loc[:,"feature1"] 0 0.71190 1 0.24160 2 0.45040 3 0.68690 4 0.40000 5 0.53550 6 0.37840 7 0.26780 8 0.53900 9 1.10500 10 0.14590

【pandas】 DataFrameの結合

pandas.DataFrame型のオブジェクトdf1,df2に対して # 縦方向の連結 pandas.concat([df1,df2]) # 横方向の連結 pandas.concat([df1, df2],axis=1) 【参考】 ・http://sinhrks.hatenablog.com/entry/2015/01/28/073327

【pandas】 DataFrame.iloc

DataFrameに対して列番号を指定する. 【参考】 ・http://ailaby.com/lox_iloc_ix/

【pandas】 DataFrame.describe()について

DataFrame.describe()はDataFrameに格納されているそれぞれの特徴量(横軸)に対して 数値データならcount, mean, std, min, 25%, 50%, 75%, maxを計算, カテゴリデータならcount, unique(カテゴリの種類), top(先頭), freq(最頻値)を計算してくれる便利な機能…

【pandas】 CSVの読み込み

csvファイルをpandas.DataFrameに格納する方法 # 読み込み csv_path = "./data.csv" data = pd.read_csv(csv_path) # データの表示(Jupyter notebookなどで) # .head()メソッドを使えば,先頭から5行が表示される data.head() # 特徴量の名前をリストとして取…

【pandas】 DataFrameから削除する

pandas.DataFrameは横軸が特徴量, 縦軸がデータの番号とするのが慣習らしい. >>> df = pd.DataFrame(np.arange(12).reshape(3,4), columns=['A', 'B', 'C', 'D']) >>> df A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 # 特徴量BとCを削除する >>> df.drop(["B",…

【Python】 集合についての操作

# 集合の宣言 a = set([1,2,3]) b = set([3,4,5]) # 和集合 > a | b {1,2,3,4,5} # 積集合 > a & b {3} # 集合の差(A-B = A-(A∩B) > a - b {1,2} # 対象差(AもしくはBにのみ含まれる A+B-(A∩B) > a ^ b {1,2,4,5} # 部分集合の判定 > a <= b False >{3,4} <=…

【python】集合型について

集合型set()について # 集合の宣言(1) a = set([1,2,3]) # 集合の宣言(2) a = {1,2,3} # 空集合の宣言 > a = set() # 追加 > a.add(1) # 削除 > a.remove(1) # 無い要素を削除するとエラー > a.remove(2) Traceback (most recent call last): File "<sttdin>", line </sttdin>…

【ギャラリー】k-meansクラスタリングにおける画像減色を3Dグラフに表す

k = 1 k = 2 k = 3 k = 4 k = 5 k = 6 k = 7 k = 8 k = 9 k = 10 k =20 k = 30 k = 50 k = 70 k = 100 k = 200 k = 300

【python】 ゼロパディングする

文字列をゼロパディングする方法を調べた. 文字列メソッドのzfill(桁数)を用いればよい. >>> num_str = "30" >>> num_str.zfill(4) 0030 【参考】 ・http://www.lifewithpython.com/2015/10/python-zero-padding.html

【python】 proxy下でデータセットをダウンロードする

以下の設定を書く. import urllib.request # proxy の設定 proxy_support = urllib.request.ProxyHandler({'http' : 'http://***.***.***:port', 'https': 'https://***.***.***:port'}) opener = urllib.request.build_opener(proxy_support) urllib.reques…

【python】 日本語CSVの読み込み時のエンコーディング

encoding = "utf-8"と指定する必要がある with open(filename, "r", encoding = "utf-8") as f: reader = csv.reader(f) header = next(reader) for row in reader: print(row)

【pandas】 DataFrameから特定の列の取り出し方

取り出したい項目["color", "size", price"]を指定して X = df[["color", "size", "price"]] のようにして取り出す.一列の場合なら df.color df["color"] によって"color"の列が取り出せる.行を取り出すには #先頭から3行目まで df[:3] のようにリストのよう…

【python】 辞書のキーと値を逆にする操作

辞書型のキーと値の順番を変更した辞書をつくる. 順序特徴量でL, M, Sという文字列の値がある場合, 数値として扱うために class_mapping = {"L":3, "M":2, "S":1} のような辞書を定義し, 文字列を数値にする. これを再び元の形に戻したい場合はinv_class_map…

【pandas】 pandas.dataframeのCSVの入力と出力

pandasのdataframeとCSVファイルのやりとりメモ import pandas as pd # CSV -> dataframe df = pd.read_csv(input_csv_path) # dataframe -> CSV df.to_csv(output_csv_path)

【numpy】配列の結合np.hstack(tup)メモ

np.hsatck()では縦方向(axis=1)の結合ができる. 行列a, bに対してaxis=1のみが違うならば, aとbは結合できる. すなわちa.shape[1]とb.shape[1]のみが異なり, a.shapeとb.shapeの他の要素が同じならば結合可能となる.その他の結合方法としてcolumn_stack()に…

【Python】help()について

クラス参照するときにhelp()関数を使うとJupyter notebook内で参照できるため便利 import sklearn import sklearn.linear_model help(sklearn.linear_model.Perceptron) 下のような説明が出てくる. Help on class Perceptron in module sklearn.linear_model…

識別結果の評価

手元にトレーニングようデータX,yがあったら X_train, y_train, X_test, y_test のトレーニングデータと検証データに分割する from sklearn.cross_validation import train_test_split #トレーニングデータと検証データに分割 #全体の30%をテストデータにす…

【numpy】meshgrid メモ

f([a,b])という関数があったとするとf([[a,b], [c,d]])というのは[f([a,b]), f([c,d])]と同じ結果を出力するのはnumpyやmatplotlibの常套らしい. >>> import numpy as np >>> x = np.array([1,2,3])# l * m >>> y = np.array([10,11])# n * k >>> xx, yy = n…

matplotlibで使えるcolormap

https://matplotlib.org/examples/color/colormaps_reference.html ここに載っているcolormap一覧をk-NN classificationの図に適応してみた. 3色だと個人的にはjet, prismあたりが見やすくて好み. 色の定義はこのように[("A",["color1","color2"]),...]のよ…

【numpy】paddingメモ

#--- 1次元配列 --- > a = [2,3] > np.pad(a,[1,0],"constant") np.array([0,2,3])#先頭に1個0padding > np.pad(a,[1,2],"constant") np.array([0,2,3,0,0)#先頭に1個, 末尾に2個0padding #-- 2次元配列 --- a = [[1,2],[3,4]] > np.pad(a,[(1,2),(3,4)],"co…