즐겁게!! 자신있게!! 살아보세!!

재밌는 인생을 위하여! 영촤!

Language_Study 40

[Python] 12.통계학

통계학 논리적 사고와 객관적인 사실에 따르며 일반적이고 확률적 결정론에 따라 인과관계를 규명 수집된 자료의 특성을 쉽게 파악하기 위해서 대표값이나 표 또는 그래프로 요약하는 기술통계학과 모집단에서 추출한 정보를 이용해서 다양한 특성을 과학적으로 추론하는 추론 통계학(검정, 분산분석, 회귀분석 등) 으로 나눔 기술통계 자료를 요약하는 기초적인 통계량 모집단의 특성을 유추 빈도분석 : 개수 파악 기술통계분석 : 평균이나 합계 등을 구하는 것 1. 기술통계 함수 numpy 에서 numpy 가 기술 통계함수를 소유 : numpy.mean(데이터) pandas에서는 Series 나 DataFrame이 기술 통계함수를 소유 : 데이터.mean() 문법적인 차이도 있으니 참고 DataFrame.mean(데이터프레임)..

[Python] 11-2.Dataframe응용과 시각화

데이터 구조화 1. stack 과 unstack stack 은 컬럼을 인덱스로 이동시켜 데이터를 길게 쌓는 것이고 unstack은 쌓은 것을 옆으로 늘어뜨리는 것 읽어온 데이터의 구조가 원하는 구조가 아닐 때 이러한 구조화 메소드를 이용해서 원하는 구조로 만들어서 데이터 분석을 수행합니다. # To add a new cell, type '# %%' # To add a new markdown cell, type '# %% [markdown]' # %% import pandas as pd import numpy as np # 멀티 인덱스 만들기 # 튜플의 list를 이용해서 멀티 인덱스 만들기 mul_index = pd.MultiIndex.from_tuples([('cus..

[Python] 11-1.DataFrame응용과 시각화

DataFrame응용과 시각화 함수매핑 pandas에서는 Series 나 DataFrame의 개별 요소에 동일한 함수를 적용하고자 하는 경우에 apply 메소드를 이용합니다. 1. Series가 apply 메소드를 호출하면 각 요소에게 함수를 적용한 후 그 결과를 가지고 다시 Series를 만들어서 리턴 2. DataFrame에 적요을 하게 되면 적용방법에 따라 Series가 되기도 하고 DataFrame이 리턴되기도 합니다. axis 옵션을 이용해서 열과 행단위로 데이터를 대입할 수 있습니다. axis=0이 기본값으로 열단위로 댕비하는데 1을 설정하면 행단위로 함수에 대입 Series는 하나의 열의 개념이고 DataFrame은 행열(Matrix - Table) 머신러닝에서는 데이터의 단위가 대부분 Ma..

[Python] 10-2.데이터전처리

불균형한 데이터 다루기 실무에서는 특정한 값을 갖는 데이터가 많은 경우가 있음 쇼핑몰에서 웹사이트 방문자는 구매 버튼을 거의 클릭하지 않으며 암 환자의 경우 암의 종류가 다양하지만 실제로는 상당수가 희귀한 경우 이 데이터를 가지고 데이터 분석을 수행하는 경우 잘못된 예측을 할 가능성이 있음 해결책 소수의 값을 갖는 데이터를 더 많이 모아야 함 불균형한 클래스에 잘맞는 모델 평가 지표를 사용 (정확도 -> 오차 행렬, 정밀도, 재현율, F1 점수, ROC 곡선 등) 데이터에 가중치를 적용 사이킷런의 대부분의 분류기들은 class_weight 라는 매개변수를 이용해서 가중치를 부여 다운 샘플링 적은 값을 갖는 데이터의 크기와 동일하게 다수 값을 갖는 데이터의 랜덤한 부분집합을 생성 업 샘플링 다수 값을 갖는..

[Python] 10-1.데이터전처리

데이터 가공 패키지가 제공하는 데이터는 load_dataset('데이터이름') 을 이용하면 데이터프레임이나 패키지에서 제공하는 별도의 클래스 타입으로 데이터가 다운로드 된다. 인터넷이 안되면 데이터를 사용할 수 없습니다. 대기업이나 금융기관은 인터넷은 되지만 데이터는 함부로 다운로드 받거나 설치할 수 없도록 설정된 경우가 있다. 이런 경우에도 데이터는 다운로드가 안된다. 1. 셀의 데이터 수정 replace 이용 첫번째 매개변수로 원본 데이터를 대입하고 두번째 매개변수로 수정할 데이터를 설정 dict로 원본데이터와 수정할 데이터를 설정 replace(1,2) replace({1:2}) 원본데이터에 정규식을 사용ㅎㄹ 수 있는데 이 경우에는 regex=True를 추가 텍스트마이닝을 하고자 하는..

[Python] 9.시각화

시도별 전출입 인구에 대한 탐색적 시각화 데이터 다운로드 : http://kosis.kr/search/search.do 시각화 데이터의 형태를 파악하거나 보고서를 만들 목적으로 그래프나 지도 등을 출력하는 작업 matplotlib(기본 시각화), pandas, seaborn(시각적인 효과가 조금 더 뛰어남), folium(지도, 단계구분도) 등을 주로 이용 1. 꺽은선 그래프 - plot 날짜나 시간에 따른 변화량 또는 2개의 컬럼을 가지고 데이터의 분포를 알아볼 때 많이 이용 실습 link import platform from matplotlib import font_manager, rc import matplotlib.pyplot as plt import pandas as pd # 데이터 읽기 pop..

[Python] 8.pandas

pandas 실습 link 자료구조 Series 와 Datafame numpy의 ndarray는 행이나 열을 구분하는 것이 정수로 된 인덱스인데 pandas의 자료구조들은 index를 직접 설정가능 1.Series 1) 생성 Series(data, index=None, dtype=None, copy=False) data는 __iter__ 가 구현된 객체 index는 데이터 별 이름을 부여하는 것인데 생략하면 0부터 시작하는 숫자 dtype은 각 요소들이 자료형인데 생략하면 유추해서 설정 copy는 복제 여부 data에 dict를 대입하면 key가 index가 되고 value가 데이터로 설정됩니다. values 속성을 호출하면 데이터만 추출해서 numpyt의 ndarray로 리턴합니다. index 속성을 ..

[Python] 7.numpy

데이터 분석이나 머신 러닝에서 사용하는 패키지 자료구조 패키지 : numpy.pandas - 데이터를 만들고 수집하고 가공하는 패키지 시각화 패키지 : matplotlib, seaborn, pandas, folium(지도, 단계구분도) 통계 : scipy 머신러닝 : sklearn 머신러닝, 딥러닝 : tensorflow, keras, pytorch numpy의 ndarray 가지고 하는 일들은 대부분 list로도 대체 가능 Python의 iterator 객체 __iter__ 구현 iterator : 순서대로 데이터 접근이 가능한 데이터의 모임 __str__ : 객체를 문자열로 변환 ndarray 정보 확인 print 함수를 이용해서 변수의 이름을 출력하면 데이터 전부를 출력 데이터의 자료형은 dtype..

[Python] 6. parsing

웹에서 데이터 가져오기 1. 기본 패키지 이용 urllib 와 urllib2 패키지를 이용해서 가져올 수 있음 1) request 모듈 urlopen 이라는 메소드에 url을 문자열로 대입하면 response 타입의 객체가 리턴 response의 getheaders()를 호출하면 서버의 정보를 읽을 수 있고 status 속성을 이용하면 서버의 상태 정보를 읽을 수 있음 read()를 호출해서 내용을 읽을 수 있음 읽어온 텍스트가 깨지는 경우에는 response객체.info().get_content_charset()을 이용해서 인코딩 정보를 리턴받고 read().decode(인코딩 정보)를 호출하면 원본 텍스트를 읽을 수 있습니다. 실습 : http://www.daum.net 의 html을 전부 가져오기 ..

[Python] 5.문법-자료형

자료형 1. Data의 분류 방법 1) 수정가능 여부 변경가능(mutable) - 변수 변경 불가능(immutable) - 상숭 Literal : 사용자가 직접 입력한 데이터 정수 : 10 실수 : 10.3 bool : True, False 복소수 : 정수 +(-) 정수j 문자열 : '문자열', "문자열", '''문자열''', """문자열""" list : [데이터, 데이터 , ...] tuple : (데이터, 데이터, ...) set : {데이터, 데이터, ...} dict : {key:데이터, key:데이터, ...} 데이터 없음 : None 변수의 생성 및 수정과 삭제 이름 = literal , 연산식, 함수 등 영역 내에서 이름이 처음 등장..