data-science-summary
-
결정 계수 in pythondata-science-summary/summary 2020. 9. 17. 23:01
결정 계수 0~1 사이의 값을 가지고 1에 가까울수록 설명력(회귀분석모델이 얼마나 데이터를 잘 설명해주는지)이 높음 결정계수와 상관계수 차이 인자가 하나일떄는 상관계수의 제곱값이 결정계수값 보통결정계수를 상관계수의 제곱으로 구하긴 하지만 정확히는 결정계수는 상관계수와는 달리 여러 독립변수들이 종속변수를 설명하는지를 나타낸 수치라 다중 회귀분석에서는 다름 회귀분석에서 사용하는 수치임. 따라서 독립변수가 여러개일떄는 제곱으로 정확하게 일치하지는 않음 수정된 결정계수 Adj. R-squared 결정계수는 독립변수 개수가 많아질수록 그 값이 커짐. 따라서 표본크기와 독립변수의 수를 고려하여 계산하는데 이것이 수정된 결정계수 독립변수 2개 이상이거나 표본 200개 미만이면 수정 결정계수를 보고서에 기술할것 fro..
-
선형회귀(LinearRegression) in pythondata-science-summary/summary 2020. 9. 17. 21:51
선형회귀(LinearRegression) 한개이상의 독립변수와 종속변수와의 선형적인 상관관계를 모델링하는 회귀 분석 기법 독립변수 개수에따라 하나면 단순 선형회귀, 두개 이상이면 다중 선형회귀라고함 일반적으로 최소 제곱법(least square method) 을 사용회 선형 회귀 모델을 만듦 sklearn, statsmodels 등의 패키지를 이용하여 회귀분석을 수행한다. # 선형 회귀 LinearRegression sklearn from sklearn import datasets from sklearn.model_selection import train_test_split import numpy as np import pandas as pd datas = datasets.load_diabetes() d..
-
상관분석 (Correlation) in pythondata-science-summary/summary 2020. 9. 16. 23:01
상관분석 (Correlation) 두 변수간에 어떤 선형적 관계를 가지고 있는지 분석하는 방법 관계정도를 나타낸 것을 상관계수라고 함 공분산 역시 관계를 나타내지만 공분산에서 두 변수 각각의 표준편차로 나눠주어 단위에 따른 영향을 제거하고 값을 -1 ~ 1 사이로 정해줌 상관계수가 절대값 1에 가까울 수록 강한 선형 관계를 나타냄 pearson 상관계수를 제곱하면 분산에서 공유하는 비율 만약 X, Y의 상관계수가 0.4 이면 그 제곱은 0.16 으로 x의 분산중 16% 를 y와 공유 또는 y로 설명됨, 선형적관계만 설명가능 상관계수에는 일반적으로 사용하는 pearson과 서열척도에 사용하는 spearnman, kendal 방식이 있음 import numpy as np from scipy import st..
-
Data를 train 과 test set으로 원하는 비율만큼 분리하는법data-science-summary/summary 2020. 9. 16. 21:58
Data를 train 과 test set으로 원하는 비율만큼 분리하려면 sklearn 의 train_test_split 모듈을 이용한다. # train/test set 분리 import numpy as np from sklearn.model_selection import train_test_split X, y = np.arange(10).reshape((5, 2)), range(5) # X, y 값 다있을때 # 7:3 으로 분기 train_x, test_x, train_y, test_y = train_test_split(X, y, test_size=0.3, random_state=123) # X 값만 있을때 train, test = train_test_split(X, test_size=0.3, rando..
-
PCA in pythondata-science-summary/summary 2020. 9. 16. 21:53
PCA(principal component analysis) 주성분 분석 PCA 이해 개념적으로 간단히 데이터의 차원을 줄이려고 하는데 원데이터의 성질을 가장 잘 보존하고자한다. 이때 분산은 데이터들의 분포 특성을 가장 잘설명하며 이 분산의 방향이 가장 큰 방향벡터를 주성분이라고 함 그리고 데이터를 가장 큰 방향벡터를 기준으로 투영(Projection)하여 변형(feature extraction) 하는것이 PCA이다. 따라서 PCA 후에는 데이터 값이 달라지지만 기존 데이터의 분포 특성을 최대한 보존한다. 첫번째 축을 찾은뒤 첫번째 축과 직교(orthogonal)하면서 분산이 가장 큰, 즉 가장 큰 방향벡터(주성분)를 찾은 뒤 축으로 하여 데이터를 투영하며 이런 반복을 원하는 차원의 수만큼 반복한다. 그..
-
Robust scaling 하는법 in pythondata-science-summary/summary 2020. 9. 16. 20:28
Robust scaling 은 중앙값 0, 사분위수의 제3사분위수에서 제1사분위수를 뺀값인 IQR이 1이 되도록 변환하는 방법을 말한다. 아웃라이어의 영향을 최소화한다는 특징을 가진다. import pandas as pd from sklearn.preprocessing import RobustScaler data = [[ 1., -2., 2.], [ -2., 1., 3.], [ 4., 1., -2.]] df = pd.DataFrame(data, columns=['a','b','c']) colnames = df.columns scaler = RobustScaler() scaler.fit(df) # Robust scaling print(scaler.transform(df)) # 원레 데이터의 중앙값, IQR..
-
z-score scaling 하는법 in pythondata-science-summary/summary 2020. 9. 14. 23:17
z-score 표준화 또는 StandardScaler 라고도 함 평균과 표준편차가 1이 되도록 변환한것 => 즉, 표준 정규분포로 환산 import pandas as pd from sklearn.preprocessing import StandardScaler data = [[0, 0], [0, 0], [1, 1], [1, 1]] df = pd.DataFrame(data, columns=['a','b']) colnames = df.columns scaler = StandardScaler() scaler.fit(df) # z-score scaling 수행 결과 print(scaler.transform(df)) # 원레 데이터의 평균, 분산 print('평균 : ', scaler.mean_) print('분산..
-
min max scaling 하는 방법 in pythondata-science-summary/summary 2020. 9. 14. 23:08
min-max 정규화란? 최소값을 0, 최대값을 1 로 하여 범위를 0~1로 변환하는 방법 import pandas as pd from sklearn.preprocessing import MinMaxScaler data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]] df = pd.DataFrame(data, columns=['a','b']) colnames = df.columns scaler = MinMaxScaler() # min-max 값 학습 scaler.fit(df) # min-max scaling 수행 print(scaler.transform(df)) new_colnames = [i+'_mms' for i in colnames] # dataframe으로 minmax s..