본문 바로가기

Python18

[Python] 회귀분석(Regression Analysis) [회귀식 추정, 회귀모형 검정, 적합도 파악] 안녕하세요~ 우주신 입니다. 저번 상관분석 포스팅에 이어 이번에는 회귀분석(Regression Analysis)에 대해 정리 해보겠습니다. 상관분석은 변수들이 서로 얼마나 밀접하게 직선적인 관계를 가지고 있는지를 분석하는 통계적 기법이며, (바로 이전 글에 자세히 다뤄봤으니 참고) 회귀분석은 한 개 또는 그 이상의 변수들(독립변수)에 대하여 다른 변수(종속변수) 사이의 관계를 수학적인 모형을 이용하여 설명하고 예측하는 분석기법 입니다. 쉽게 말하자면, 상관분석에서는 산점도의 점들의 분포를 통해 일정한 패턴을 확인한 후, 상관계수를 구하여 두 변수 간의 선형 관계를 알 수 있었습니다. 여기서 더 나아가, 이 일정한 패턴을 활용하여 무엇인가를 예측하는 분석을 회귀분석이라고 보시면 됩니다. 회귀분석 하면 괜히.. 2021. 8. 7.
[Python] 상관분석(Correlation Analysis), [산점도, 공분산, 상관계수, 검정] 안녕하세요. 우주신 입니다. 약 3년만에 포스팅을 하네요... 일을 하다보니 포스팅을 꾸준히 못 하고 있습니다..ㅠ 오늘은 블로그에서 가장 조회수가 높은 '[R] 상관분석...' 글을 Python으로 빠르게 변환 해봤습니다. 이번 포스팅과 다음 포스팅에서는 상관분석과 회귀분석에 대해 정리해보겠습니다. 우리는 종종 어떤 두 사건 간의 연관성을 분석해야 할 경우가 많습니다. 둘 또는 그 이상의 변수들이 서로 관련성을 가지고 변화할 때 그 관계를 분석해야 하는데, 가장 잘 알려진 방법 중 하나가 상관분석과 회귀분석 입니다. 예를 들어, GDP와 기대수명 간의 관계, 키와 몸무게 간의 관계를 보자면, 각각 두 변수 간의 선형적 관계를 상관(Correlation)이라고 하며, 이러한 관계에 대한 분석을 상관분석(.. 2021. 3. 5.
[Python] Apriori algorithm:; 연관규칙분석 (2) 안녕하세요. 우주신 입니다. 저번 포스팅에 이어서 연관규칙 알고리즘의 Apriori 알고리즘에 대해 글을 쓰겠습니다. 저번 포스팅에서 연관규칙분석 개념 및 Apriori 알고리즘에 대해 알아봤으니,이번에는 파이썬 코드를 보며 한번 더 복습해보자.(지난 포스트의 지식을 다 안다는 전제하에 코드만 설명) 내가 테스트한 트랜잭션 데이터베이스(Transaction Database)는 아래와 같은 양식이다.각 줄이 itemset을 구분하며, 1번 itemset은 7번 item과 14번 item으로 구성되어 있다고 보면 된다. Apriori 알고리즘은 아래와 같은 순서로 진행된다.1. 트랜잭션 데이터베이스를 스캔하면서 1-빈번항목집합을 구한다.2. k-빈번항목집합을 대상으로 (k+1)-빈번항목집합을 구한다.- Se.. 2018. 7. 23.
[Python] Apriori algorithm:: 연관규칙분석 (1) 안녕하세요. 우주신 입니다. 이번 포스팅에서는 연관규칙 알고리즘 중 가장 먼저 접하게 되는 Apriori 알고리즘에 대해 알아보겠습니다. Apriori 알고리즘은 빈발항목집합(frequent itemsets) 및 연관규칙분석을 위한 알고리즘이다. 먼저, 연관규칙분석이란 무엇인가?우리는 연관규칙 분석을 통해 서로 다른 두 아이템 집합이 얼만큼 빈번히 발생하는지(연관도)를 알 수 있다.경영학이라면 한번쯤은 들어 봤을만한 "맥주를 구매하는 고객들은 기저귀를 구매할 가능성이 높다." 예시도 연관규칙 탐색을 통해 도출된 결론으로 볼 수 있다. 연관규칙분석의 대표적인 알고리즘으로 ▷ Apriori algorithm ▷ FP-growth algorithm▷ DHP algorithm 등이 있는데, Apriori 알고리.. 2018. 7. 18.
[Python] matplotlib 이용하여 누적영역형차트, 원형차트 그리기 안녕하세요. 우주신 입니다. 저번 시간에 이어 matplotlib 이용하여 누적영역형차트, 원형차트 그리는 방법에 대해 포스팅 하겠습니다. 우선, 그래프를 만들 임의의 데이터를 생성하겠습니다. (정말 아무 의미 없는 값을 입력해 데이터 생성했어요;) 1. 누적영역형차트 (Stacked Area Graph) 누적영역형차트는 두 개 이상의 데이터 계열을 서로 누적하는 영역형 차트 입니다. 특히, 제품별로 매출에 기여하는 정도를 시계열로 나열하여 한 눈에 쉽게 볼 수 있어 성과 분석을 위한 기본적인 그래프 중 하나 입니다. plt.stackplot(beernum, price, amount, country)-plt.stackplot() 함수 안에 4개의 리스트인 데이터를 입력했습니다. 첫번째 데이터인 beern.. 2018. 1. 2.
[Python] matplotlib 이용하여 히스토그램, 산점도 그리기 안녕하세요. 우주신 입니다. 이번 시간에는 히스토그램과 산점도 그리는 방법에 대해 배워보겠습니다. 먼저, pandas를 이용하여 웹에서 csv 파일을 불러왔습니다. 상점 번호, 연도, 기간, p1매출액.. 등을 기준으로 데이터프레임을 만들었습니다. 이 중 p1sales의 데이터를 히스토그램과 산점도로 시각화 해보겠습니다. 1. 히스토그램 (Histogram) plt.hist(df['p1sales'])-plt.hist() 함수 안에 df의 열 'p1sales' 데이터를 넣었습니다. Y축에는 빈도수가, X축에는 매출액을 기준으로 히스토그램이 출력됐습니다. X축 매출액의 범위를 조정해보겠습니다. plt.hist(df['p1sales'], list)-list 자리에 X축 범위를 지정할 수 있습니다. list에 .. 2017. 12. 29.
[Python] matplotlib 이용하여 그래프 그리기 안녕하세요. 우주신 입니다. 이번 포스팅에서는 matplotlib 모듈과 그래프를 그리는 가장 기초적인 방법에 대해 알아보겠습니다. 데이터의 단순한 나열보다는 한 눈에 파악할 수 있는 표나 그래프가 더 가치 있다고 생각하기에,데이터의 분석만큼 중요한 부분이 시각화 입니다. 앞으로 대중적으로 쓰이는 모듈 중 하나인 matplotlib을 활용하여 다양한 그래프를 그리는 방법에 대해 끄적거려보겠습니다. 한줄 한줄 차근히 설명해보겠습니다.import matplotlib.pyplot as plt-우선 matplotlib을 import 해야하는데 pyplot을 함께 묶어준 이유는 거의 모든 시각화하는데 있어 pyplot을 이용하기 때문입니다. 흔히 plt를 약자로 사용합니다. import pandas as pd는 .. 2017. 12. 29.
[Python] 이동평균 계산 (pandas.Series.rolling) 안녕하세요. 우주신 입니다. 오늘은 알아두면 매우 유용한 함수 pandas.Series.rolling에 대해 포스팅 하겠습니다.데이터분석을 하다보면 일정 범위에서 규칙적으로 연산(예: 이동평균)을 해야할 일이 많습니다.예를 들어, 날마다 일주일 간의 주가 평균을 알고 싶을 때, 매일 일일이 다 계산하는 것은 매우 비효율적 입니다. 이 때, 유용하게 쓸 수 있는 함수가 .rolling 이라고 보시면 됩니다.예전에 이 함수를 모를 때는 for문을 이용하여 rolling 함수의 기능을 구현 하다보니 코드도 길고 실행하는 데도 시간이 꽤 걸렸던 기억이 있네요;; 우선, 이번 시간에 사용할 금융 데이터를 웹에서 불러오겠습니다.(금융 데이터 불러오기: http://ordo.tistory.com/57) 현대차 종가 .. 2017. 12. 28.
[Python] Missing Data(NA, NaN) 처리 안녕하세요. 우주신 입니다. 데이터 분석에 있어 가장 중요한 과정은 결측값 및 특이값을 얼마나 잘 처리하는지의 유무에 달려 있다고 생각하는데요,오늘은 pandas를 이용하여 NA, NaN 데이터를 처리하는 몇가지 방법을 포스팅 하겠습니다. df.dropna(), df.fillna() 우선, 결측값이나 특이값을 처리하는 3가지 방법이 있습니다. 1. 무시한다2. 제거한다3. 다른 값으로 대체한다 먼저, pandas와 numpy를 이용해 NaN 값이 포함된 데이터프레임을 만들었습니다. 1. 첫번째 방법은 아주 쉬워요. 그냥 무시하시면 됩니다.물론, 추후에 데이터 분석을 하는 데 있어 걸리적거리겠죠.. 2. df.dropna() NaN이 들어간 행 전체를 제거하는 방법에 대해 보겠습니다. 첫번째 줄 df.dr.. 2017. 12. 6.
[Python] 금융(주가) 데이터 불러오기 안녕하세요 우주신 입니다. 오늘은 pandas를 이용하여 웹에서 주가 데이터를 가져오는 방법에 대해 포스팅 하겠습니다. datetime.datetime(), pandas_datareader.DataReader(), pd.date_range(), quandl.get() 우선, 필요한 패키지를 다 다운 받습니다.그 후, pandas_datareader의 DataReader를 이용해 웹에서 주가 데이터를 다운 받겠습니다. 1. pandas_datareader.DataReader(ticker, online_source, start, end) 삼성전자 티커를 넣고 yahoo 웹에서 2010년 1월 1일부터 2016년 12월 31일까지 데이터를 데이터프레임 df에 입력했습니다.여기서 online_source는 ya.. 2017. 12. 5.
[Python] 데이터프레임 병합 (.merge) 안녕하세요. 우주신 입니다. 이번에는 pandas의 merge()를 이용해 데이터프레임끼리 병합하는 방법에 대해 알아보겠습니다. 우선, import pandas as pd를 통해 pandas를 가져왔습니다.지난 포스팅의 데이터프레임 결합에서 이용했던 데이터프레임을 그대로 쓰겠습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같고, df3는 df1과 달리 3번째 열이 'Color_Num'입니다. 1. pd.merge(데이터프레임, 데이터프레임) 인덱스만 다르고 값이 같은 df1과 df2를 병합 시켜보겠습니다. 위의 출력 결과를 보면, 인덱스와 상관 없이 병합이 되고, 같은 값들은 중복 표기가 되지 않습니다. 2. pd.merge(데이터프레임, 데이터프레임, on = ' ') 이번에는 특정 열을 지정하여.. 2017. 11. 28.
[Python] 데이터프레임 결합 (.concat, .append) 안녕하세요. 우주신 입니다. 오늘은 파이썬에서 pandas 라이브러리의 concat 함수와 append 함수를 이용하여 데이터프레임끼리 합치는 방법을 포스팅하겠습니다. 우선, import pandas as pd 를 통해 pandas를 가져왔습니다.데이터프레임 결합에 이용할 3개의 데이터프레임을 만들었습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같습니다.df3는 df1과 달리 3번째 열이 'Color_Num' 입니다. 1. pd.concat() concat는 연결의 뜻을 가진 concatenation의 줄임말 입니다.pandas의 concat을 이용해 df1, df2를 결합 했습니다. pd.concat( [데이터프레임, 데이터프레임] ) 밑의 출력된 결과를 보면 같은 열의 이름에 맞춰 세로로 결합.. 2017. 11. 27.