본문 바로가기

분류 전체보기

(174)
ROC, AUC Curve에 대해 : Receiver Operating Characteristic, Area Under the Curve AUC-ROC Curve는 다양한 임계값에서 모델의 분류 성능에 대한 측정 그래프를 나타낼 수 있습니다. ROC곡선과 이에 기반한 AUC스코어는 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표입니다. 일반적으로 의학 분야에서 많이 사용되지만, ML의 이진 분류 모델의 예측 성능을 판단하는 중요한 평가 지표이기도 합니다. ROC곡선과 이에 기반한 AUC스코어는 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표입니다. 1. ROC(Receiver Operation Characteristic): 모든 임계값에서 분류 모델의 성능을 보여주는 그래프가 됩니다. FPR을 0부터 1까지 변경하면서 TPR의 변화값을 구합니다. 다시 설명하면, FPR(False ositive Rate)이 변할 때 TPR(T..
라쏘 / 엘라스틱넷 회귀 : Lasso / ElasticNet Model 이란? Scikit Learn에서의 실습 라쏘 회귀 : Lasso Model W의 절댓값에 페널티를 부여하는 L1규제를 선형 회귀에 적용한 것이 라쏘(Lasso)회귀입니다. 즉 L1규제는 alpha*||W||를 의미합니다. Lasso 또한 비용 함수를 최소화하는 W를 찾는 것을 의미합니다. L2규제가 회귀 계수의 크기를 감소시키는 데 반해, L1규제는 불필요한 회귀 계수를 급격하게 감소시켜 0으로 만들고 제거합니다. 이러한 의미에서 L1규제는 적절한 Feature만 회귀에 포함시키는 Feature선택의 특성을 가지고 있습니다. 코드의 get_linear_reg_eval함수는 회귀값을 쉽게 구하기 위한 공통 함수이며 GitHub에서 찾을 수 있습니다. Lasso클래스의 주요 생성 파라미터는 alpha이며, 이는 라쏘 회귀의 alpha L1규제 계..
릿지 회귀 : Ridge Model 이란? Scikit Learn에서의 실습 릿지 회귀 : Ridge Model 사이킷런에서의 Ridge 클래스의 주요 생성 파라미터는 alpha이며, 릿지 회귀의 alpha L2규제 계수에 해당합니다. from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.model_selection import cross_val_score from sklearn.datasets import load_boston from sklearn.linear_model import Ridge import matplotlib.pyplot as plt import seaborn as sns import pandas as pd import ..
Regulation(규제) 선형 모델에 대한 개요 - 릿지(Ridge), 라쏘(Lasso), 엘라스틱(Elastic Net) 규제 선형 모델의 개요 좋은 머신러닝 회귀 모델은 적절히 데이터에 적합하면서도 회귀 계수가 기하급수적으로 커지는 것을 제어할 수 있어야 합니다. 이전까지 선형 모델의 비용 함수는 RSS를 최소화하는, 즉 실제 값과 예측값의 차이를 최소화하는 것만 고려했습니다. 그러다 보니 학습 데이터에 지나치게 맞추게 되고, 회귀 계수가 쉽게 커지게 되는 경향이 있습니다. 이럴 경우 변동성이 오히려 심해져도 테스트 데이터 세트에서는 예측 성능이 저하되기 쉽습니다. 이를 반영해 비용 함수는 학습 데이터의 잔차 오류 값을 최소화하는 RSS최소화 방법과 과적합을 방지하기 위해 회귀 계수 값이 커지지 않도록 하는 방법이 서로 균형을 이뤄야 합니다. 결론적으로 회귀 계수의 크기를 제어해 과적합을 개선하려면 비용(Cost) 함수의..
train_test_split()의 사용과 교차 검증 cross_val_score 이용하기 train_test_split() train_test_split()은 데이터 세트를 학습 데이터와 테스트 데이터로 분리할 때 사용하는 함수입니다. from sklearn.model_selection import train_test_split from sklearn.datasets import load_iris from sklearn.model_selection import cross_val_score import pandas as pd import numpy as np iris = load_iris() iris_data = iris.data iris_label = iris.taget X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_..
선형 회귀 분석 - LinearRegression 및 보스턴 주택 가격 회귀 구현 LinearRegression 선형 회귀 분석 - LinearRegression LinearRegression 클래스는 예측값과 실제 값의 RSS(Residual Sum of Squares)를 최소화해 OLS(Ordinary Least Squares)추정 방식으로 구현한 클래스입니다. OLS기반의 회귀 계수 계산은 입력 피처의 독립성에 많은 영향을 받습니다. 피처간의 상관관계가 매우 높은 경우 분산이 매우 커져서 오류에 매우 민감해집니다. 이러한 현상을 다중공선정(Multi-Collinearity)문제라고 합니다. 일반적으로 상관관계가 높은 피처가 많은 경우 독립적인 중요한 피처만 제거하거나 규제를 적용합니다. 또한 매우 많은 피처가 다중 공전성 문제를 가지고 있다면 PCA를 통해 차원 축소를 수행하는 ..
머신러닝에서의 회귀 분석 : 소개, 단순선형회귀, 경사 하강법 회귀 소개 회귀 분석은 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법입니다. 통계학 용어를 빌리자면 회귀는 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 통칭합니다. 예를 들어 아파트의 방 개수, 방 크기, 주변 학군 등 여러 개의 독립변수에 따라 아파트 가격이라는 종속변수가 어떤 관계를 나타내는지를 모델링하고 예측하는 것입니다. 독립변수의 값에 영향을 미치는 것을 회귀 계수(Regression Coefficients)라고 합니다. 머신러닝 관점에서 보면 독립변수는 Feature에 해당되며 종속변수는 결정 값입니다. 머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아낸 것입니다. 회귀는 회귀 계..
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] 슬라이싱을 이용하여 iloc와 loc를 활용한 방법입니다. 실무에서 매우 유용하게 사용할 수 있는 내용입니다. 모든 행(:)의 데이터에 대해 country와 continent열을 추출하는 방법입니다. 이때 loc와 iloc속성에 전달하는 열 지정 값은 반드시 형식에 맞게 전달해야 합니다. loc는 열명, iloc는 열 위치를 숫자로 지정해야 합니다. import pandas as pd # print("\n-- \n", "") pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep..
GeForce RTX 3080을 이용한 TensorFlow and NAMD 수행능력 RTX 3080을 이용한 AI 성능 [이런 Test를 해보는 해외 기술 블로거.. 대단하다.] www.pugetsystems.com/labs/hpc/RTX3080-TensorFlow-and-NAMD-Performance-on-Linux-Preliminary-1885/#Results Test system Hardware Intel Xeon 3265W: 24-cores (4.4/3.4 GHz) Motherboard: Asus PRO WS C621-64L SAGE/10G (Intel C621-64L EATX) Memory: 6x REG ECC DDR4-2933 32GB (192GB total) NVIDIA RTX3080 and RTX TITAN Software Ubuntu 20.04 Linux Docker v..
깃허브 (GitHub) 사용법 깃허브(GitHub) 개요 대부분의 개발자들은 원격 저장소인 GitHub에 대해 알고 있을 것입니다. 분석의 영역이 Python의 ML, AI Library가 공개되며 분석가들과의 SQL과 Python코드 공유 작업의 편의성을 위해 그 사용 영역이 넓어지고 있습니다. GibHub를 사용하면 프로젝트에 대한 형상관리가 가능하며, 개인 포트폴리오를 올리고 관리할 수 있게 됩니다. GibHub를 이용하여 자신의 코드를 관리하는 방법에 대해 알아보겠습니다. 깃허브(GitHub) 프로세스 간략 + Working Directory: 본인의 작업 PC를 의미한다. + Staging Area: git commit 하기전 저장되는 git의 공간을 의미한다. + Local Repository: 내 PC에 파일이 저장되는 ..
GIT 설치하기 : 윈도우에서 바로 설치하기 GIT 설치하기 GitHub를 사용하기 위해서는 Git이 설치되어 있어야 합니다. 본 설명은 Window버젼을 중심으로 합니다. 1. git-scm.com/에서 오른쪽에 Download ... for Windows를 클릭합니다. 2. 설치위치를 "C:\Users\HANA\Git"으로 합니다. [본인이 원하는 곳에 하면 됩니다.] 3. 계속 Next 후 "Choosing the deault editor used by Git"이 나옵니다. Git에서 사용 할 기본 Editor를 선택하는 것인데요. 원하는 내용을 선택하면 됩니다. 개인적으로 새로운 프록램 설치가 싫어 이미 설치된 Pycharm을 선택하였습니다. 4. 계속 Next 후 "Choosing HTTPS transport backend"에서 https..
[Python] 반복문의 사용 Range, Enumerate, for in loop Range Python에서 range 함수는 자주 사용되는 함수 중 하나입니다. 연속된 숫자(정수)를 만들어주는 range() 함수의 사용법을 정리해봅니다. 1. range(종료숫자): (종료숫자-1)까지 1씩, 숫자를 증가시키게 됩니다. 0부터 시작합니다. 2. range(시작숫자, 종료숫자): 시작숫자를 시작으로 (종료숫자-1)까지 1씩, 숫자를 변경합니다. 2. range(시작숫자, 종료숫자, Step): 시작숫자를 시작으로 (종료숫자-1)까지 Step만크 변화시키며 숫자를 변경합니다. range()의 결과는 반복가능(iterable)하기 때문에 for문을 사용해 출력 할 수 있습니다. 보통 일반적으로 사용하는 방법입니다. range_1 = range(10) print("\n-- list(range..
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [행단위] Pandas의 DataFrame을 보면 type(pandas_DF)형을 확인하면 으로 변경이 됩니다. 행 단위로 추출하는 방법으로 loc, iloc속성을 사용해야 합니다. 속성 설명 loc 인덱스를 기준으로 행 데이터 추출 iloc 행 번호를 기준으로 행 데이터 추출 import pandas as pd pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep='\t') print("\n-- type(pandas_DF)\n", type(pandas_DF)) print("\n-- pandas_DF.columns\n", pandas_DF.columns) prin..
[지식라이브ON] 세상을 읽는 새로운 언어, 빅데이터 (서울대 산업공학과 조성준 교수) 서울대 산업공학과 교수인 조성준 교수의 '세상을 읽는 언어, 빅데이터' 강연. 도움되는 정리가 된다. 현재 서울대학교 산업공학과 교수와 데이터마이닝센터장으로 재직하고 있다. 또한, 정부와 공공기관이 보유하고 있는 데이터를 개방하여 국민의 알 권리 보장 및 민간의 산업적 데이터 활용을 도모하는 공동데이터법에 따라 만들어진 공공데이터전략위원장을 맡고있다. [조성준 교수_빅데이터1강]미래를 여는 기술, 빅데이터란 무엇인가 [조성준 교수_빅데이터2강]빅데이터로 고객의 욕망을 읽는 법 [조성준 교수_빅데이터3강]리스크를 줄이는 데이터 인사이트 [조성준 교수_빅데이터4강]기업을 살리는 빅데이터의 힘 [조성준 교수_빅데이터5강]빅데이터는 어떻게 분석하는가 [조성준 교수_빅데이터6강]AI는 무엇을 가능하게 만들었나 [..
경영학 전공자가 뽑은 가장 매력적인 회사 TOP 50 : 삼성 43위 Top 50 world's most attractive employers 2020/2019 2020년 43위 삼성 등급. 44위가 하웨이.. 미국이 하웨이만 때리는 이유가 있다. 무서운 회사. 어찌보면 트럼프가 우리나라에 참 고마운 존재일 수 있다. 그래도 트럼프는 싫다. 2020년에 Netflex가 없어진건 이외다. 우리 회사도 보이는 그날까지...
Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() Pandas는 파이썬 데이터 처리를 위해 존재하는 가장 인기 있는 라이브러리입니다. 판다스는 다양한 포맷으로 된 파일을 DataFrame으로 로딩할 수 있는 편리한 API를 제공합니다. 가장 많이 API로 read_csv()는 CSV뿐만 아니라 어떤 필드 구분 문자 기반의 파일 포맷도 DataFrame으로 변환이 가능합니다. read_csv()의 인자인 sep에 해당 구분 문자를 입력하면 됩니다. 가령 탭으로 필드가 구분돼 있다는 read_scv('파일명', sep='\t')처럼 쓰면 됩니다. read_csv()에서 sep인자를 생략하면 자동으로 콤마로 할당합니다(sep='.')..