🐕 Pythonによるデータ分析の教科書4章メモ
作成日: 2021/12/22
0

Numpy

配列用の型 ndarray
行列用の型 matrix

pandas

1次元のデータ Series
2次元のデータ DataFrame

import

Numpy import numpy as np
pandas import pandas as pd
散布図行列を出力する関数 from pandas.plotting import scatter_matrix
Matplotlib import matplotlib.pyplot as plt
グラフのスタイル import matplotlib.style
欠損値の補完 from sklearn.preprocessing import Imputer
from sklearn.impute import SimpleImputer
impute(代入)preprocessing(前処理)
カテゴリ変数のエンコーディング from sklearn.preprocessing import LabelEncoder
One-hotエンコーディング from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
分散正規化 from sklearn.preprocessing import StandardScaler
最小最大正規化 from sklearn.preprocessing import MinMaxScaler
Irisデータセット from sklearn.datasets import load_iris
ボストンデータセット from sklearn.datasets import load_boston
テストデータと学習データの分割 from sklearn.model_selection import train_test_split
サポートベクタマシン from sklearn.svm import SVC
決定木 from sklearn.tree import DecisionTreeClassifier
決定木の描画 from pydotplus import graph_from_dot_data
from sklearn.tree import export_graphviz
ランダムフォレスト from sklearn.ensemble import RandomForestClassifier
線形回帰 from sklearn.linear_model import LinearRegression
regression(回帰)
主成分分析 from sklearn.decomposition import PCA
decomposition(分解)
適合率、再現率、F値の出力 from sklearn.metrics import classification_report
交差検証 from sklearn.model_selection import cross_val_score
真陽性率、偽陽性率の算出 from sklearn.metrics import roc_curve
AUCの算出 from sklearn.metrics import roc_auc_score
グリッドサーチ from sklearn.model_selection import GridSearchCV
k-means from sklearn.cluster import KMeans
凝集型の階層的クラスタリング from sklearn.cluster import AgglomerativeClustering
樹形図 from scipy.cluster.hierarchy import dendrogram
#深いコピー
a1 = a
は参照になっており、a1を変更するとaも変更されてしまう。
それを避けるには、
a1 = a.copy()
とするしかない
ravelメソッド:参照
flattenメソッド:コピー
Numpyでスライス:参照
Python標準リストでスライス:コピー
#Numpy 各メソッドについて
np.random.randint(1, 10)
1以上10未満の整数の中から1つの整数が生成される
np.random.uniform(0.0, 5.0, size=(2, 3))
randintとほぼ同じだが生成される数値が小数になる
np.random.randn(4, 2)
平均0、分散1の標準正規分布の値がランダムに出力される
正規分布の乱数として他に下記がある
np.ramdom.normal(平均, 標準偏差, size)

np.linspace(0, 1, 5)
0以上1以下を等間隔で区切った5つの要素の配列を作る 0., 0.25, 0.5, 0.75, 1.

np.diff
要素間の差分を取り出す
l = np.array([2, 2, 6, 1, 3])
np.diff(l)
array([0, 4, -5, 2])

連結
行方向 0, v
np.concatenate([b, b1], axis=0)
np.vstack([b, b1])
列方向 1, h
np.concatenate([b, b1], axis=1)
np.hstack([b, b1])

用語

ユニバーサルファンクション
例 np.abs(b)

ブロードキャスト
例 a + 10

#pandas
loc:インデックス名やカラム名で指定
iloc:数字で指定
locやilocは行と列両方指定する必要がある

df.sort_values(by="歩数")
昇順(小さい方から順)
df.sort_values(by="歩数", ascending=False)
降順(大きい方から順)

One-hotエンコーディング
df_moved = pd.get_dummies(df.loc[:,"運動指数"], prefix="運動")

欠損値補完
最頻値で補完 df1 = df.fillna(df.mode().iloc[0,:])

連結
行方向
df = pd.concat([df1, df2], axis=0)
列方向
df = pd.concat([df1, df2], axis=1)

母集団の標準偏差
df.loc[:, "摂取カロリー"].std(ddof=0)

まとめて統計量を出力する
df.describe()

相関係数
df.corr()
カラム間の相関係数が出力される

Jupyter Notebookのマジックコマンド

グラフを表示
%matplotlib inline

Matplotlib

折れ線グラフ plot
棒グラフ bar
横向き棒グラフ barh
散布図 scatter
ヒストグラム hist
横向きのヒストグラム ax.hist(x, orientation="horizontal")
積み上げたヒストグラム ax.hist((x0, x1, x2), label=labels, stacked=True)
箱ひげ図 boxplot
横向きの箱ひげ図 ax.boxplot((x0, x1, x2), labels=labels, vert=False)
円グラフ pie

アスペクト比を保持して円グラフを表示する
ax.axis('equal')
上から時計回りに円グラフを表示する
ax.pie(x, labels=labels, startangle=90, counterclock=False)

#scikit-learn
前処理
fit
transform
分類
fit(学習)
predict(予測)

#予測確率の正確さ
ROC曲線
AUC
AUCの値が1に近づくほど確率が相対的に高いサンプルが正例、相対的に低いサンプルが負例となる傾向が高まる
 AUCの値が0.5に近づくほど正例と負例がランダムに混じっている


フリーランスでpythonエンジニアとして働きたく勉強中。 前職は運用SEとセキュリティエンジニア。 開発は学校で学んだ経験と趣味でやっていた程度。一応前職でも業務の自動化のためにExcel VBAやセキュリティテスト用のWebサイトの開発やセキュリティテストツールの改良などで開発はやっていた。