data-science-summary/summary
-
선형회귀(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..
-
Box cox 변환 in pythondata-science-summary/summary 2020. 9. 14. 22:59
BOX-COX 변환은 정규분포가 아닌 자료를 정규분포로 변환하기 위해 사용됨 lambda 값을 통해 조정 scipy 모듈의 stats 서브 모듈 사용 => box-cox 변환된 값과 최적의 lamda 값이 구할수 있음 from scipy import stats import matplotlib.pyplot as plt # 그림판준비 fig = plt.figure() # 2행 1열의 세부 그림장 생성 ax1 = fig.add_subplot(131) ax2 = fig.add_subplot(133) # log gamma continuous random variable 생성 x = stats.loggamma.rvs(5, size=500) + 5 # Q-Q 플롯 그리기 prob = stats.probplot(x, ..