데이터분석 139

[판다스 데이터프레임] group by

groupby [] 사용 df.groupby(["a","b"])["a"].count() => a를 기준으로 b의 도메인별 개수를 보여준다 (example 1) df.groupby(['Survived','Pclass'])['Survived'].count() Survived Pclass 0 1 80 2 97 3 372 1 1 136 2 87 3 119 Name: Survived, dtype: int64 (example 2) df.groupby(['Pclass','Survived'])['Survived'].count() Pclass Survived 1 0 80 1 136 2 0 97 1 87 3 0 372 1 119 Name: Survived, dtype: int64 groupby agg 사용 df.group..

파이썬 k-means 클러스터링 군집분석

K-means 클러스터링 sklearn의 kmeans클러스터링을 이용하여 군집분석을 수행한다. 데이터는 iris데이터를 사용한다. 코드 - 필요한 패키지 설치 # 필요한 패키지 설치 import pandas as pd import numpy as np from sklearn import datasets import seaborn as sns from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from mpl_toolkits.mplot3d import proj3d - 본 데이터 업로드 및 산점도 그리기 # skearn.datasets에 포함된 iris(붓꽃) 데이터 가져오기 iris = datasets.load_iris..

파이썬 다항회귀분석

다항회귀분석 차수가 2차수 이상인 다항회귀분석 모델을 만든다. 코드 설명 1. 학습데이터 준비 # 데이터 생성 x_train = sorted(6*rd.rand(100,1)-3) y_train = 0.5 * x**2 + x + 2 + rd.randn(100,1) 2. 학습데이터 다차항으로 transform하기 파이썬에서 다항회귀를 하기 위해선 다항데이터를 만들어 주어야 한다. 즉 aX => bX+cX^2으로 만들어야 한다. degree 파라미터를 이용해 몇차항으로 만들것인지 판단한며 include_bias를 이용하여 bias를 만들껀지 판단한다. 코드는 다음과 같다. # 데이터 만들기 quadratic = PolynomialFeatures(degree=2, include_bias=False) # 다항회귀..

파이썬 선형계획법 해찾기

파이썬 선형계획법 파이썬을 이용하여 선형계획법 문제를 해결한다. 예시문제 1 - 문제상황 A,B,C 세개의 제품이 있고 가장 수익을 많이 내는 방법을 찾는다. 판매가격은 A제품이 10, B제품이 8, C제품이 9 이다. 생산비용은 A제품이 2, B제품이 3, C제품이 1 이며 생산비용의 총합은 1000을 넘어서는 안된다. 생산시간은 A제품이 5, B제품이 6, C제품이 6 이며 생산시간의 총합은 2400을 넘어서는 안된다. 모든 제품은 700이상 생산해서는 안된다. B제품은 160이상 생산해야 한다. - 목적함수 max (10X_1+8X_2+9X_3) - 제한조건 2X_1+3X_2+X_3 = 0 - 코드 from pulp import * # sense: LpMaximize or LpMinimize(de..

파이썬 계층적 군집분석(dendrogram)

계층적 군집분석 파이썬 sklearn 라이브러리의 hierarchy 를 이용하여 계층적 군집분석을 수행한다. 예시 import matplotlib.pyplot as plt import pandas as pd import numpy as np file_path = "파일경로" df = pd.read_csv(file_path) display(df) import scipy.cluster.hierarchy as shc # data transformation data = df.iloc[:, 3:5].values # display(data) # dendrogram 그리기 plt.figure(figsize=(10, 7)) plt.title("Customer Dendograms") link = shc.linkage(d..

나이브 베이즈 확률

나이브베이즈 우리가 구하고자 하는 확률을 사후확률이라고 칭할 뿐 우도와 사후확률은 변수만 반대일 뿐 계산식은 같다 나이브베이즈 예시 양성으로 예측된 사람이 실제로 양성일 확률? - 우도 P(양성예측 | 실제양성) = P(양성예측 n 실제양성) / P(실제양성) = (370/1085) / (385/1085) = 0.9610 - 사전확률 P(실제양성) = 385 / 1085 = 0.354 - 증거(혹은 주변우도) P(양성예측) = 380 / 1085 = 0.350 - 사후확률 P(실제양성 | 양성예측) = (P(양성예측 | 실제양성) * P(실제양성)) / P(양성예측) = 0.961 * 0.354 / 0.350 = 0.971 * 그냥 쉽게 양성으로 예측된 사람 중 실제 양성인 사람(370)에서 양성으로 예..

범주형 변수가 있을 때 다중회귀분석 파이썬 코드

범주형 변수가 있는 회귀분석 x1이 범주형 변수로서 A혹은 B값을 갖을 때, 회귀식을 다음과 같이 변환한다. 이때 더미변수를 처리하는 방식은 풀랭크 방식과 축소 방식이 있다. 각각의 방식을 알아본다. 테스트용 데이터는 보스턴 집값 데이터를 사용한다 풀랭크 방식 풀랭크 방식은 범주형 변수 x1의 값에 정해짐에 따라 다음과 같이 더미값을 설정한다. 그러면 회귀식은 다음과 같다. 위 데이터 중 RAD를 범주형 변수로 간주하고 나이(AGE)와 함께 풀랭크로 표시한다. 코드로 구현하면 다음과 같다. (C로 범주형 변수를 더미화하고, 쿼리에 0을 붙여 풀랭크임을 표시한다.) import pandas as pd from sklearn.datasets import load_boston import statsmodels..

파이썬 단순,다중 선형회귀분석 코드 및 해석

단순선형회귀분석 코드 import numpy as np import pandas as pd import statsmodels.formula.api as smf x=np.array([1,1,2,3,4]) y=np.array([1,2,2,3,4]) data = pd.DataFrame({'x':x, 'y':y}) my_fit = smf.ols('y~x', data=data).fit() print(my_fit.summary()) 통계값 해석 1. R-squared(결정계수) : 모델의 적합도. 2. Adj. R-squared(수정된 결정계수) : 결정계수는 변수가 많아질수록 커지므로 변수의 중요성을 설명하지 못한다. 분모에 변수의 개수가 들어가있는 수정된 결정계수를 사용하면, 변수의 중요도를 알 수 있다(변수..

모평균 구간추정(모 표준편차를 알때(z), 모를때(t)) 파이썬 코드

모평균 구간추정 모평균의 구간추정을 한다. 이때 모 표준편차를 아는 상태(z검정)와 모르는 상태(t검정)로 나누어서 모평균의 구간을 추정한다. 데이터는 아래와 같이 생성하였다. data = np.random.randint(1,100,size=(100)) 모 표준편차를 알 때 모평균 구간 추정(Z검정) 1. 계산식 * 이때 모표준편차의 식은 다음과 같다 2. 코드(직접계산) import numpy as np import pandas as pd from scipy.stats import norm,sem # 평균, 표준편차, 표본수 sample_mean = np.mean(data) sample_std = np.std(data) size = len(data) # z통계량 z_95_left = norm(0, 1)..

카이제곱 검정 (적합도 검정, 독립성 검정, 동질성 검정)

카이제곱 검정 카이제곱 검정은 두 범주형 변수에 대한 분석 방법이다. 다음의 세가지 검증 방법이 있다. 1. 적합도 검정 : 한 범주형 변수의 각 그룹 별 비율과 특정 상수비가 같은지 검증하는 것 2. 독립성 검정 : 두 범주형 변수가 서로 독립인지 검정하는 것 3. 동질성 검정 : 각 집단이 서로 유사한 성향을 갖는지 분석하는 것 적합도 검정 1. 정의 : 어떤 자료가 주어진 분포를 따른다고 할 수 있는가를 검정하는 것. 2. 예시 2.1 주사위의 각 눈금이 나올 확률이 1/6인가 귀무가설 : 주사위의 각 눈금이 나올 확률이 1/6이다. 대립가설 : 주사위 중 적어도 눈금 하나는 나올 확률이 1/6이 아니다. 2.2 (A,B,C,D,E) 각각의 자동차 선호도 확률이 (0.3, 0.15, 0.1, 0...

분산분석 ANOVA (일원, 이원, 다원)

검정 종류 다음과 같은 가설검정 들 중 모집단의 개수가 3개이상일 때 사용하는 분산분석(ANOVA)분석에 대해서 알아 본다 일원분산분석(one-way ANOVA) 1. 정의 : 종속변인 1개, 독립변인 1개인 상황에서 3개이상의 모집단의 평균이 다른지 검증하는 것 2. 예시 2.1 A,B,C 반은 30명으로 구성되어 있다. 반별 수학점수는 같은가 다른가 귀무가설 : 세 반의 수학점수는 모두 같다. (독립변수 : 반) 대립가설 : 적어도 한 반의 수학점수가 다르다. 2.2 제약회사에서 세 종류의 두통약을 개발했다. 두통약 별 효과의 차이가 있는가? 귀무가설 : 두통약의 효과에 차이가 없다. (독립변수 : 약) 대립가설 : 두통약에 효과가 있는 약이 적어도 하나 있다. 2.3 (3,4,5,6)월에 생산된 티..

같은 모집단의 사건 전후를 비교할 때 가설검정(대응표본 t검정)

검정 종류 다음과 같은 가설검정들 중 같은 모집단의 사건 전후를 비교하는(짝을 지을 수 있는) 대응표본 t검정에 대해 알아본다 대응표본 t검정 1. 정의 : 실험 전후에 데이터를 수집한 두 데이터 간 평균 차이를 검증하는 것 2. 기본 가정사항 : 정규성만족 3. 예시 3.1 50명의 부모들이 "부모가 달라졌어요" 시청했을때 시청 전후 양육방식의 변화가 있는가? 귀무가설 : "부모가 달라졌어요" 시청 후 양육방식의 차이가 없다 대립가설 : "부모가 달라졌어요" 시청 후 양육방식의 차이가 있다 3.2 10명의 사격자가 1차 2차 사격을 했을 떄 차수의 평균 변화가 있는가? 귀무가설 : 1차 2차 사격의 평균이 같다. 대립가설 : 1차 2차 사격의 평균이 다르다. 4. 분석과정 4.1 정규성 검정(샤피로..

서로다른 모집단이 두개일때 가설검정(독립표본 t검정)

검정 종류 다음과 같은 가설검정들 중 모집단의 개수가 두개인 단일표본 t검정에 대해 알아본다 독립 표본 t검정 1. 정의 : 두 집단 간의 평균치의 차이를 비교하는 통계 검정 방법 2. 기본 가정사항 : 독립성, 정규성, 등분산성 3. 예시 3.1 A반의 학생 30명의 평균성적은 70, 표준편차는 15, B반 학생의 평균성적은 75, 표준편차는 13일때 두 반의 성적차이가 있는가? 귀무가설 : A반의 학생의 평균성적과 B반의 학생의 평균성적은 차이가 없다. 대립가설 : A반의 학생의 평균성적과 B반의 학생의 평균성적은 차이가 있다. 3.2 20대여자의 휴대폰 사용량은 3시간 표준편차는 25분, 20대남자의 휴대폰사용량은 2시간 45분, 표준편차는 32분일때 남녀별 휴대폰 사용량은 차이가 있는가? 귀..

모집단이 한개일때 가설검정 (단일표본 t검정)

검정 종류 다음과 같은 가설검정들 중 모집단의 개수가 한개인 단일표본 t검정에 대해 알아본다 단일표본 t검정(one sample t-test) 1. 정의 : 모집단의 평균을 알때, 해당 모집단으로 부터 추출한 표본의 평균이 알고있는 모집단의 평균과 차이가 있는지 검정하는 것 2. 기본 가정사항 : 정규성을 만족해야 함. (표본이 30개이상이면 중심극한정리에 의해 정규성 만족) 3. 예시 3.1 국내 개인 피폭선량 평균은 0.67일때, K 병원의 영상의학과 직원의 평균피폭량 0.75는 국내평균과 차이가 있는가? 귀무가설 : K병원의 평균 피폭선량과 국내 개인 피폭선량의 평균값은 차이가 없다. 대립가설 : K병원의 평균 피폭선량과 국내 개인 피폭선량의 평균값은 차이가 있다. 3.2 서울대학교 학생의 수업만족..

[태블로] 파일 업로드 및 sheet에서 행,열 구성하기

1. 새 비주얼리제이션 만들기 2. 데이터 첨부하기 위 화면에 데이터 드래그 엔 드랍 원본데이터를 확인할 수 있음 3. 시각화하기 왼쪽아래 sheet를 누르고, 원하는 행, 열 구성을 왼쪽 테이블에서 드래그엔 드랍 행을 id, 열을 성별로 했을때 테이블 행을 성별, 열을 생존자 수로 했을 때 그래프 오른쪽 표현방식에서 다른 차트로 변활할 수 있다.