zenn.skin 무료버전 배포중!
자세히보기

분류 전체보기 182

DataScience
[ML] 머신러닝 시스템의 종류

머신러닝 알고리즘의 종류는 매우 다양합니다. 이들을 넓은 범주에서 분류하고 사용한다면 이해하는 데 도움을 줄 수 있습니다. 사람의 감독하에 훈련하는 것인지의 여부: 지도, 비지도, 준지도, 강화 학습 실시간으로 점진적 학습을 하는지 여부: 온라인 학습, 배치 학습 저장하고 있는 데이터와 새로운 데이터를 비교 or 데이터에서 패턴을 발견 해 예측 모델을 만드는지: 사례 기반 학습, 모델 기반 학습 위 범주들은 서로 배타적이지 않습니다. (ex) 지도학습이며 배치 학습이며 사례 기반 학습인 머신러닝 알고리즘) 1. 지도학습과 비지도 학습 "학습하는 동안의 감독 형태나 정보량" 에 따라 분류 지도 학습, 비지도 학습, 준지도 학습, 강화 학습으로 구분 ① 지도학습 훈련 데이터가 레이블을 포함하고 있음 분류 알..

Python/Syntax
[Python] random 모듈

랜덤 함수를 사용할 때마다 다시 찾아봐야해서 정리를 해두려 합니다. 제공하는 함수가 워낙 많아서 그 중에서 자주 사용하는 함수 몇 개만 추리겠습니다. 랜덤함수에 대해 좀 더 공부하고 싶으신 분은 help(random)을 통해 도움말을 보거나, random — 의사 난수 생성 — Python 3.10.5 문서 random — 의사 난수 생성 소스 코드: Lib/random.py 이 모듈은 다양한 분포에 대한 의사 난수 생성기를 구현합니다. 정수에 대해서는, 범위에서 균일한 선택이 있습니다. 시퀀스에 대해서는, 무작위 docs.python.org random 공식 문서를 확인하시면 좋을 것 같습니다. 1. choice( seq) import random random.choice([1, 2, 3, 4]) # ..

Python/Syntax
[Python] slice 클래스

파이썬의 slice 클래스는 슬라이싱을 도와주는 클래스입니다. slice 클래스는 start, step, stop을 변수로 갖습니다. 하나의 인자를 가지는 경우 stop을 두 개의 인자를 가지는 경우 start, stop을 세 개의 인자를 가지는 경우 순서대로 start, stop, step을 순서대로 갖습니다. s1 = slice(5) # stop만 가짐 s2 = slice(1, 6) # start, stop을 가짐 s3 = slice(1, 10, 2) # start, stop, step을 가짐 슬라이스를 사용하면 슬라이싱이 가능한 객체에서 지정된 범위만큼 슬라이싱을 해줍니다. sample = "abcdefghijklmnopqrstuvwxyz" nums_list = [1, 2, 3, 4, 5, 6, 7..

Python/Syntax
[Pandas] 행에서 문자열, 값의 검색

DataFrame에서는 반복문 사용을 지양하고 대부분 내장함수를 사용하여 데이터를 처리합니다. 문자열을 검색할 때 "in"이나 re 모듈을 사용해서 검색을 많이 하는데 오늘은 contains에 대해 공부해보려 합니다. import pandas as pd data = [['Scarlett johansson', 160], ['Christopher Robert Evans', 183], ['Robert John Downey Jr.', 174], ['Mark Ruffalo', 173]] df = pd.DataFrame(data, columns=['name', 'height']) print(df['name'].str.contains('Jr')) 1. contains contains 메소드는 조건에 해당하는 bool..

Python/Syntax
[Pandas] 데이터 프레임 인덱스 초기화

DataFrame의 인덱스를 초기화할 때는 DataFrame.reset_index() 메소드를 사용합니다. 대부분의 메소드가 inplace를 지원하듯(DataFrame을 반환하지 않고 DataFrame의 값을 변경함) reset_index도 inplace를 지원합니다. import pandas as pd sales = pd.read_excel('매출내역.xlsx') cancel = sales.loc[sales['매출금액'] < 0] cancel.reset_index(inplace=True) cancel 별도의 설정없이 reset_index를 사용하는 경우 index가 따로 빠져나옵니다. drop=True로 설정하면 index를 별도의 열로 갖지 않고 삭제가 됩니다. import pandas as pd s..

Python/Syntax
[Pandas] 다른 데이터프레임 속성값을 이용해 값 선택, 데이터프레임 순회

두 개의 데이터프레임이 있을 때, 한 쪽 데이터프레임의 속성값을 사용해 다른 데이터 프레임에서 행을 선택하는 방법에 대해 적어보려 합니다. 다음과 같이 전체 매출 DataFrame과 반품-취소 DataFrame이 있습니다. 반품-취소 DataFrame을 사용해 전체 매출 데이터에서 해당하는 행을 얻으려 합니다. import pandas as pd selected_rows = [] for idx, item in cancel_list.iterrows(): selected_rows.append(sales.loc[(sales['판매일자'] == item['판매일자']) & (sales['매출금액'] == item['판매일자'])]) selected_rows DataFrame의 iterrows 메소드는 DataF..

DataScience
[Numpy] Poly1d 그래프 plot

[Numpy] 다항식을 다룰 수 있는 polynomial class, poly1d 회귀방정식을 구하거나 수치 연산을 할 때 다항식을 다룰 일이 엄청나게 많습니다! Numpy에서는 다항식을 사용하기 쉽게 polynomial class를 제공하고 있는데 오늘은 이 polynomial class에 대해 공부해보 koosco.tistory.com 지난 번에 다항식을 다룰 수 있도록 해주는 numpy의 poly1d class에 대해 알아보았습니다. stack overflow에서 polynomial을 plot하는 내용의 질문을 보고 한 번 정리해두려 합니다. import matplotlib.pyplot as plt import numpy as np p = poly1d([1, 2, 1]) plt.plot(p) 위 다..

Python/Syntax
[Numpy] arange, linspace

numpy에 일정 간격을 가지는 ndarray를 생성할 수 있는 함수에는 numpy.arange와 numpy.linspace가 있습니다. 상황에 따라 조금씩 다르게 사용되는 두 함수에 대해 정리해 보려 합니다. 1. arange - 생성되는 ndarray의 개수는 모르고, 간격만 결정합니다. 파이썬의 리스트와 거의 동일합니다. - arange는 총 4개의 인자를 받습니다. (start, stop, step, dtype) - arange(start, stop, step, dtype=None), start부터 stop까지 step 간격을 가지는 ndarray를 생성합니다. - 파이썬에서 제공되는 range함수와 거의 동일하게 작돟하며, stop은 ndarray에 포함되지 않습니다. - numpy의 ndarr..

DataScience
[Matplotlib] PieChart(파이차트)

1. 파이 차트 - 항목 별 비율차이를 파악하기 편한 그래프 - 범주형 자료를 표현하기에 적합 - 전체 데이터 중 특정 데이터의 비율을 보기 쉽게 표현 2. 파이 차트 사용 import matplotlib.pyplot as plt size = [30, 20, 15, 60] label = ['A', 'B', 'C', 'D'] color = ['darkmagenta', 'deeppink', 'hotpink', 'pink'] plt.title("Example Pie") plt.pie(size, labels=label, colors=color, autopct="%.1f%%", explode=(0, 0, 0.1, 0)) plt.legend() plt.axis('equal') pie chart의 파라미터 사용 - ..