統計データ分析-データ自体の統計
4047 ワード
-データ自体の統計(内部情報)
-データ間統計(外部または関係情報)
データ自体の統計
1.基本分析方法
import pandas as pd
HANDS2_HOUSEPRICE = "https://raw.githubusercontent.com/ageron/handson-ml2/master/datasets/housing/housing.csv"
df_data = pd.read_csv(HANDS2_HOUSEPRICE)
df_data.head()
df_data.describe(include = 'all')
df_data['median_income'].describe()
df_data.describe()
実行結果によると、Columlongth、mean、50%(median)などの差は小さく、total room、populationの差は大きい.
-データにスキューがある可能性があります
-正規分布を形成する可能性がある
=>分析が容易(事前処理が少ない)で、募集チームに似ている可能性があります(他の証明が必要です)
データ分散の可視化
-
df_data['median_income'].plot(kind='density')
df_data['median_income'].sort_values().cumsum().reset_index(drop=True).plot()
その他の分析方法
例)10->1,9.8->0.982
from pandas import Series
def min_max_scaling(series:Series) -> Series:
return (series - series.min())/(series.max() - series.min())
from pandas import Series
def normalize(series:Series) -> Series:
return (series - series.mean())/series.std()
import pandas as pd
BIN = 5
CAT = range(10)
pd.cut(df_data['median_income], q=BIN, labels=CAT)
外部処理方法
df_data['median_income'].plot(kind='box)
マッピングの最小値は
from typing import Tuple
from pandas import Series
def include_outlier(series:Series, bounds:Tuple[int, int] = (0.1, 0.9)):
series = series.copy()
lower,upper = bounds
l, u = series.quantile(lower), series.quantile(upper)
series[series < l], series[series > u] = l, u
return series
def include_outlier2(series:Series):
series = series.copy()
q3, q1 = series.quantile(0.75), series.quantile(0.25)
iqr = q3 - q1
series[series < q1 - (1.5 * iqr)], series[series > q3 + (1.5 * iqr)] = q1, q3
return series
def drop_outlier(series:Series, bounds:Tuple[int, int] = (0.1, 0.9)):
series = series.copy()
lower, upper = bounds
s, e = series.quantile(lower), series.quantile(upper)
return series[(s <= series) & (series <= e)]
def drop_outlier2(series:Series):
series = series.copy()
q3, q1 = series.quantile(0.75), series.quantile(0.25)
iqr = q3 - q1
l = q1 - (1.5*iqr)
u = q3 + (1.5*iqr)
return series[(l<=series) & (series <= u)]
外部処理関数の適用include_outlier(df_data['median_income'], (0.1, 0.9)).describe()
drop_outlier(df_data['median_income'], (0.1, 0.9))
Reference
この問題について(統計データ分析-データ自体の統計), 我々は、より多くの情報をここで見つけました https://velog.io/@growthmindset/통계적-데이터-분석연속형-변수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol