본문 바로가기
728x90

분류 전체보기279

[일변량 정상 시계열 분석] Data Source: https://www.kaggle.com/datasets/robertritz/ub-meat-prices?resource=download Time Series¶ 시간 데이터 : 특정 간격을 갖는 시간이 필요합니다.(Lag: 시간의 간격) Lag데이터 에서 Data의 경향성을 찾아야 합니다. 일변량 정상 시계열 - ARIMA 시계열 성분 특징 ① Trend (추세) ② Seasonality (계절성) ③ Cycle (주기) ④ Noise (잡음) → White Noise 평균과 분산이 변하지 않아 분석가능한 데이터 시계열 분석은 외부적인 변동 요인에 취약하기에 모델이 불확실할 수 있다. In [1]: import pandas as pd import numpy as np import s.. 2023. 1. 30.
[eumerate()] 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받습니다. 인덱스와 값을 순차적으로 함께 리턴한다는 특징이 있습니다. In [1]: test_input = ['a', 'b', 'c', 'd', 'e'] for index, value in enumerate(test_input): # 입력의 순서대로 0부터 인덱스를 부여함. print("value : {}, index: {}".format(value, index)) value : a, index: 0 value : b, index: 1 value : c, index: 2 value : d, index: 3 value : e, index: 4 In [2]: test_input = ['a', 'b', 'c', .. 2023. 1. 29.
[정규 표현식] regex 2편 정규 표현식 심화 그루핑 문자열이 계속해서 반복되는지 조사하는 정규식을 작성하고 싶은 경우 메타 문자 ( )로 그룹을 만들어 줍니다. 그룹이 중첩되어 있는 경우는 바깥쪽부터 시작하여 안쪽으로 들어갈수록 인덱스가 증가한다. 예시 : (ABC)+ → ABC 문자열이 최소 1번 이상 계속해서 반복되는 여부 보통 그루핑은 반복되는 문자열을 찾을 때 사용합니다. 즉, 매치된 문자열 중에서 특정 부분의 문자열만 뽑아내기 위함이다. 실전에서는 이름 + " " + 전화번호 형태에서 '이름'만 뽑아내려는 경우 p = re.compile(r" (\w+) # 이름 \s+ # " " \d+[-]\d+[-]\d+ # 전화번호 ", re.VERBOSE) 특징: 1) Backreferences 그루핑은 문자열 재참조가 가능합니다... 2023. 1. 28.
[정규 표현식] regex 1편 정규 표현식 정규 표현식 : 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어 정규표현식은 문자열의 검색과 치환을 위해 지원하고 있습니다. 정규 표현식은 메타 문자를 사용하여 특별한 의미를 부여 합니다. 메타 문자 : 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자 . ^ $ * + ? { } [ ] \ | ( ) 메타 문자 1 : +, * , [ ], {} 특징 : 메타 문자의 매치가 진행될 때 현재 매치되고 있는 문자열의 위치가 변경 됩니다. (문자열을 소비시키는 메타문자) ▶ character class (문자 클래스) 기호 : [ ] 의미 : 대괄호 사이의 문자들과 매치한다. 예시 : [abc] → "a, b, c" 중 한 개의 문자와 매치하라는 의미입니다. [a-c.. 2023. 1. 28.
[텍스트 전처리] 1.Tokenization (토큰화) 텍스트 전처리¶ 자연어 처리 기법에 적용하기 위해 용도에 맞게 텍스트를 사전에 처리하는 작업 토큰화 & 정제 & 정규화 과정이 있습니다. Tokenization¶ Word Tokenization¶ In [1]: from nltk.tokenize import word_tokenize from nltk.tokenize import WordPunctTokenizer # 구두점을 별도로 분류함 from tensorflow.keras.preprocessing.text import text_to_word_sequence In [2]: # 아스트로피(') 처리 print("word_token_1 : ", word_tokenize("They were the last people you'd expect to be inv.. 2023. 1. 28.
[텍스트 처리]자연어 처리를 위한 라이브러리 setting Tensorflow : 구글이 2015년에 공개한 머신 러닝 오픈소스 라이브러리¶ Keras : 딥러닝 프레임워크인 텐서플로우에 대한 추상화된 API를 제공, 백엔드로 텐서플로우를 사용¶ gensim : 머신 러닝을 사용하여 토픽 모델링과 자연어 처리등을 수행할 수 있게 해주는 오픈 소스 라이브러리¶ Scikit-learn : 파이썬 머신러닝 라이브러리¶ 자연어 처리 패키지 In [1]: import nltk # 수동설치 > Tokenizer: http://www.nltk.org/nltk_data/ # 윈도우 : C:/nltk_data또는 D:/nltk_data In [2]: nltk.download() showing info https://raw.githubusercontent.com/nltk/nltk.. 2023. 1. 28.
[이미지 분할] Image segmentation 이미지 분할의 목적은 픽셀 수준에서 이미지를 이해하고 정보를 추출하는 것입니다. 이미지 분할은 객체 인식과 위치 탐색에 사용됩니다. 이미지 분할의 목표는 이미지의 픽셀 단위 마스크를 생성하도록 신경망을 훈련하는 것입니다. CNN에서 이미지 분류 문제로 이미지를 벡터로 변환해야 합니다. 분류 책임자를 마지막에 더하여 분류하도록 합니다. 대표적으로 이미지 분할로 유넷을 사용하는 경우 이미지를 가지고 인코딩을 합니다. 기본 이미지 분류에서는 입력값은 이미지이고 출력은 0또는 1인 클래스 분류 문제입니다. 유넷은 입력값과 결과값이 같은 사이즈를 가집니다. (이미지의 사이즈 보존 됨) 다시 말해, 전통적인 CNN은 일반적으로 전체 이미지가 클래스 라벨로 분류되어야 할 경우 사용합니다. 반면, 유넷은 픽셀 수준의 .. 2023. 1. 26.
[Machine Learning][나이브 베이지안 ] NAIVE BAYES 나이브 베이스는 베이즈의 정리를 기반으로 하는 분류 기법입니다. 베이즈 정리는 사전확률을 알고 있을 때, 사건 발생 후에 그 확률이 수정되거나 변할 수 있다는 의미입니다. 과제 : 새로운 고객은 빨간색으로 분류되는가 초록색으로 분류되는가? NAIVE BAYES step1. prior probability (사전 확률) - 얕은 추측 우리는 빨간 점보다 파란 점을 더 많이 갖고 있기 때문에 우리는 새로운 점이 빨간 점보다 파란 점(더 흔한 클래스)으로 속할 것이라 판단합니다. 빨강 점의 사전확률 = Number of RED Points / Total Number of Points = 20 / 60 초록 점의 사전확률 = Number of GREEN Points / Total Number of Points .. 2023. 1. 26.
[콘볼루션 신경망] CONVOLUTIONAL NEURAL NETWORKS Convolutional Layer란 콘볼루션 신경망을 설계하기 위해서 콘볼루션 레이어를 불러야 합니다. 콘볼루션 레이어는 이미지에서 특징을 추출하는 층입니다. 즉, 이미지에서 중요한 정보를 추출하려는 레이어 입니다. 커널이라고 불리는 레이어들이 이미지를 훑으면서 특징을 추출합니다. 하나의 레이어에만 의존하지는 않고 실제로는 여러 개의 커널이 있습니다. 모든 특징을 추출하여 그 정보를 갖고 인공 신경망을 훈련 시킵니다. 첫 번째 CNN 혹은 콘볼루션 신경망은 이미지에서 높은 수준의 일반적인 특징을 추출하기 위해 사용합니다. (곡선, 모서리 등 이미지에서 특징이 될만한 부분) 다음 레이어는 층이 깊이 들어가면서 더욱 복잡한 특징을 추출합니다. (얼굴, 코, 눈 등) CNN 흐름 CNN의 전반적인 흐름은 이.. 2023. 1. 26.
Prophet with python 아래 코드는 데이터 전처리 과정이 생략되어 있습니다. Prophet함수를 어떻게 사용하는지에 관한 부분과 그 결과가 어떻게 생겨나는지 파악하는 정도로 이해하려고 썼습니다. 더욱 자세한 내용은 참고 사이트를 통해 Prophet기능을 숙지하면 큰 도움이 될 것입니다. data source: https://www.kaggle.com/datasets/pratyushakar/rossmann-store-sales TASK: FACEBOOK PROPHET¶ https://facebook.github.io/prophet/docs/quick_start.html#python-api https://research.facebook.com/blog/2017/2/prophet-forecasting-at-scale/ In [ ]:.. 2023. 1. 25.
FACEBOOK PROPHET 페이스북 핵심 데이터 과학팀에서 풀어준 오픈 소스 소프트웨어입니다. 연도별, 주별 그리고 일별 계절성 추가적으로 휴일 효과에 맞는 비선형 추세의 가법 모형을 기반으로 시계열 데이터를 예측하는 절차이다. 과거 데이터를 줬을 때 미래를 예측을 한다. 강력한 계절성 효과가 있고 많은 과거 데이터가 있을 경우 잘 작동합니다. 네 가지 요소로 구성된 가법 회귀 모델로 구성됩니다. 회귀 분석은 독립변수 X와 종속변수 Y사이의 관계를 얻고 싶을 때 사용합니다. 독립적이라는 것은 독립변수를 내가 원하는 대로 바꿀 수 있다는 의미입니다. x의 변화를 기반으로 Y를 예측할 수 있습니다. 페이스북 프로펫을 적용할 때 네 가지의 요소가 있습니다. 1) 조각별 선형함수 자동으로 데이터의 변경 지점을 선택하고 추세의변화를 구별합.. 2023. 1. 25.
[오토인코더] AutoEncoder 오토인코더는 일종의 인공신경망이다. 데이터 인코딩 작업을 수행하기 위해 사용합니다. 오토인코더의 구조는 다음 그림과 같습니다. 인공신경망이 인코더 네트워크와 디코더 네트워크로 구분됩니다. 두 개의 인공신경망이 있고 반전된 구조로 연결되어 있습니다. 인풋이 들어가 은닉층을 거치며 축소되고 코드 층에서 업샘플링을 합니다. Z는 Bottlenect "code layer"로 네트워크가 인풋을 압축시켜 인코딩 되도록 강제하는 역할을 수행합니다. 그리고 아웃풋에 도달합니다. 인풋 데이터와 똑같은 아웃풋 데이터를 재구성해내는 구조입니다. 오토 인코더를 사용하여 간단한 차원 축소 혹은 인코딩을 수행합니다. 만약, 데이터들 간에 상관관계가 존재한다면 오토인코더는 잘 작동됩니다. ENCODER : h(x) = sigmoi.. 2023. 1. 25.
[분류 모델 평가 지표] Confusion Matrix 실제 분류 True False 예측 분류 True TP (True Positive) FP (False Positive) TYPE Ⅰ ERROR False FN (Flase Negative) TYPE Ⅱ ERROR TN (True Negative) 해석) True Poisitive : 예측 결과 긍정이고(Positive) 실제와 일치한다.(True) 암의 질병을 예측하는 예시라면 TP : 분류기가 결과를 병에 걸렸다고 예측한 경우 실제 결과도 병에 걸린게 맞는 경우 TN : 분류기가 결과를 병에 걸리지 않았다고 예측한 경우 실제 결과도 병에 걸리지 않은 경우 FP (제 1종 오류): 환자가 병에 걸리지도 않았는데 병에 걸렸다고 해 버린 경우 FN (제 2종 오류): 환자가 건강하다고 예측하였는데 병에 걸린.. 2023. 1. 24.
[인공신경망] ANN: Artificial Neural Networks 인공 신경망이란 인간의 실제 뇌와 신경을 본떠 만든 구조 입니다. 지능은 뉴런들이 전기적, 화학적 신호를 사용하며 서로 소통하며 생기는 것이다. 인공신경망은 생물학적인 뉴런들을 모방하기 위해 많은 수학적 식을 이용합니다. 간단한 인공싱경망 이미지는 다음과 같다. m: 은닉 층의 뉴런 수 N_1: 입력의 수 Feed forward Artificial Neural Networks 파란 점들은 뉴런이고 모두 연결되어 있습니다. 첫 번째 층에 있는 모든 뉴런은 은닉층이라고 불리는 두 번째 층에 모두 연결되어 있습니다. 모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법은 Dense Artificial Neural Networks (DNN)라고 부릅니다. 은닉층에 이어진 또 다른 은닉층에 또 이어지거나 .. 2023. 1. 24.
[Visualization] Plotly_Part2 plotlyhttps://plotly.com/python/ In [1]:# interactive graphsimport plotly.express as pximport pandas as pdimport numpy as np  practical examplehttps://www.kaggle.com/datasets/davincermak/quarterly-census-of-employment-and-wages-may-2020?resource=download  choropleth_mapbox In [2]:df_practice = pd.read_csv('data.csv') # 2020년 5월의 실업데이터 In [3]:df_practice.head(1) Out[3]: area_fipsarea_titlemay2020.. 2023. 1. 22.
[Visualization] Plotly_Part1 plotlyhttps://plotly.com/python/  plotly/datasetshttps://github.com/plotly/datasets In [1]:# interactive graphsimport plotly.express as pximport pandas as pdimport numpy as np In [2]:df = px.data.gapminder();df Out[2]: countrycontinentyearlifeExppopgdpPercapiso_alphaiso_num0AfghanistanAsia195228.8018425333779.445314AFG41AfghanistanAsia195730.3329240934820.853030AFG42AfghanistanAsia196231.9971026.. 2023. 1. 22.
[Visualization] seaborn 데이터1 : 비행 데이터 용량이 커서 xlsb 형식으로 저장되어 있다. 압축해제 후 엑셀 > F12 > csv 형식으로 저장하여 분석에 사용가능하다. 데이터2 : 인사 데이터 데이터 출처: https://www.kaggle.com/datasets/usdot/flight-delays https://www.kaggle.com/datasets/arashnic/hr-analytics-job-change-of-data-scientists?resource=download Seaborn https://seaborn.pydata.org/tutorial/introduction In [68]: import matplotlib.pyplot as plt import seaborn as sns import pandas as p.. 2023. 1. 22.
[Visualization] matplotlib 데이터 출처: https://www.kaggle.com/datasets/yasserh/bitcoin-prices-dataset?resource=download matplotlib tutorial https://matplotlib.org/stable/tutorials/introductory/usage.html In [37]: import matplotlib.pyplot as plt import seaborn as sns # bulit on top of matplotlib import pandas as pd import numpy as np %matplotlib inline In [38]: plt.plot([1,2,3,4,5,6], [9,7,8,2,4,6]) Out[38]: [] axes https://ma.. 2023. 1. 22.
[Visualization] Basic_for _visualization In [6]: import numpy as np import pandas as pd numerical In [11]: num_df = pd.DataFrame(np.random.randint(0, 100, size=(10,5)), columns = list('ABCDE')) num_df Out[11]: A B C D E 0 5 9 66 69 87 1 18 87 31 59 42 2 30 69 31 13 38 3 90 96 19 59 91 4 34 95 27 56 69 5 28 36 26 34 53 6 57 55 96 6 16 7 48 30 19 8 58 8 6 72 65 76 61 9 96 72 0 77 93 categorical In [12]: cat_df = pd.DataFrame({"Color": ['.. 2023. 1. 22.
그래프 유형 선택하기 선 그래프 ● 시간 경과에 따른 추세 분석 및 시연에 적합하다 ● 변화를 쉽게 관찰 가능하다 ● 신속한 데이터 설정 및 테스트 ● 한 축은 가변 값(예를 들어 가격)을 나타낼 수 있고 다른 축은 시간을 나타낼 수 있습니다 (가령, 월별 매출 시각화를 수행하는 것과 비슷하다). 막대 그래프 ● 범주 비교에 적합 ● 이해하기 쉬운 전통적인 그래프 표현 ● 막대의 길이는 수치 또는 백분율을 표현 ● 신속한 프로토타이핑을 지원하는 간단한 설정 산점도 ● 두 변수 간의 관계 시연 ● 비선형 패턴 시연의 이점이 있다. ● 구축 및 시각화가 쉽고, 많은 산업에서 널리 인정받고 있다. ● 사용자가 정의하기 쉽다. 히트맵 ● 다양한 항목 비교에 유용 ● 쉽게 이해 가능한 색상 변화 ● 보는 사람을 특정 위치로 안내 가능.. 2023. 1. 21.
728x90