본문 바로가기
728x90

분류 전체보기279

프로그래밍 언어 : 파이썬 편 !---------- Day 1 ---------- key point : 파이썬 기본구조, 입/출력 함수, 숫자형, 문자열 ! 파이썬 기본구조 플랫폼에 독립적이어 여러 운영체제에서 사용가능합니다. 인터프리터식, 객체지향적, 동적타이핑 대화형 언어입니다. 구글의 3대 개발(C, Java, Python)언어 고급 언어는 기계가 이해할 수 있도록 컴파일로 해주어야합니다. 컴파일러 - 문서 전체를 번역합니다. 인터프리터 - 문서의 각 라인을 번역합니다. 파이썬은 여백이 중요합니다. * 여백 : 탭으로 입력하며 같은 수준의 코드들은 반드시 동일한 여백을 가져야합니다. * 자료형 검사 프로그램이 자료형의 제약 조건을 지키는지 검증 컴파일 타임(정적 타이핑) - 실행 전에 자료형을 검사 런타임(동적 타이핑) - 실행.. 2023. 3. 5.
프로그래밍 언어: 자바편 !---------- Day1 ---------- key point : 객체 지향, 입/출력 함수, JAVA 문법, 접근 제한자 C언어는 절차 지향 언어입니다. 한계는 재사용성이 떨이져서 유지 보수가 떨어집니다. ! 객체 지향 : 현실 세계 존재하는 실체(Entity,개체) 및 개념들을 "객체"라는 독립된 단위로 구성합니다. 이 객체들이 메시지를 통하여 상호작용함으로써 전체 시스템이 운영되는 개념 예를 들어, 클래스는 "빵틀"처럼 개념적인 의미이고 객체는 "빵"처럼 구체적인 의미입니다. 클래스는 속성과 메서드(행위)로 구성됩니다. 클래스 (자동차) [자가용] 바퀴4개, 휘발유 / 전진, 후진 ... [버스] 바퀴 4개, 경유 / 전진, 후진 [택시] 바퀴 4개, LPG / 전진, 후진 >> 클래스 (Cl.. 2023. 3. 4.
프로그래밍 언어 : C언어 편 !---------- Day 1 ---------- ! 소프트웨어 개발 절차 분석 , 설계, 구현 , 테스트, 유지 및 보수 구현에 필요한 프로그래밍 언어 ! 프로그래밍 언어 프로그램은 명령어의 집합입니다. 프로그래밍 언어는 2가지로 구분합니다. 컴퓨터 중심의 저급 언어 (기계어 0과 1 즉, 비트) 사용자 중심의 고급 언어 (C, Python) ! 자료의 단위 bit : 정보의 최소 단위 (1bit는 2 즉, 0과 1) Byte : 8bit로 256가지 정보 표현 bit → Byte → KB → MB → GB → TB byte는 bit * 8 Byte부터 * 1024(2의 10승) 배씩 증가합니다. ! 코드 체계 ASCII code (아스키 코드) - 7bit, 128개 문자만 표현 Uni code (.. 2023. 3. 3.
인공지능 용어 AI 영역 ANI narrow AI 하나에 집중 GAI general AI 생성 인공신경망 1) ANN 인공신경망 2) Deep Neural Network Hidden Layer가 많아짐 3) 딥러닝의 출발점 character recognitioin CNN, GPU 4) 컴퓨터 비전 Single object Multi object classification classification + Localization Object Detection Instance Segmentation Deep Learning 1) perceptron 2) Gradient-Decent Error 줄이기 3) MLP : input → Hidden Layer → output Backpropagation 역전파 알고리즘 - 기대 출려.. 2023. 2. 28.
AI 기초 이론 AI 기초 이론 ● Hypothesis y = 2x Supervised Learning - Regression / Classification Unsupervised Learning y = ax + b가 딥러닝에서는 다음으로 정의합니다. y를 Hypothesis, b를 Θ_0, a를 Θ_1 ● Cost Function Hypothesis로 나온 결과 값과 실제 값의 차이를 제곱하는 비용함수를 구합니다. 비용함수(Cost Function)는 다음으로 정의합니다. 숫자 2는 계산의 편의상 들어가 있습니다. 비용함수가 최소가 되는 ZERO가 되도록 만드는 지점을 찾습니다. 어떻게 ZERO로 만들까? ● Gradient desecnt Gradient descent algorithm을 사용하여 repeat unti.. 2023. 2. 27.
OLS 고급 수식 구문 '+' : 주 효과 ':' : 특정 상호 작용 2023. 2. 22.
outlier 상관성이 높은 변수를 기준으로 이상치 제거 import seaborn as sns plt.figure(figsize=(9,9)) corr = card_df.corr() sns.heatmap(corr, cmap='RdBu') 이상치 인덱스 import numpy as np def get_outlier(df = None, column = None, weight = 1.5): data = df[df['Class']==1][column] quantile_25 = np.percentile(data.values, 25) quantile_75 = np.percentile(data.values, 75) iqr = quantile_75 - quantile_25 iqr_weight = iqr * weight lowest_.. 2023. 2. 18.
[Machine Learning] Oversampling & Undersampling Class 속성이 매우 불균형한 분포를 가지고 있는 경우 사용합니다. 이상 레이블을 가지는 데이터 건수가 정상 레이블을 가진 데이터 건수에 비해 너무 적기 때문에 데이터 세트를 학습 시킬 때 예측 성능의 문제가 발생할 수 있습니다. 정상 레이블을 가지는 데이터 건수가 매우 많기 때문에 일방적으로 정상 레이블로 치우친 학습으로 이상 데이터 검출이 어려워지는 문제가 있습니다. Oversampling(오버 샘플링)과 Undersampling(언더 샘플링) 방법은 지도 학습에서 극도로 불균형한 레이블 값 분포로 인한 문제점을 해결합니다. Undersampling : 많은 레이블을 가진 데이터 세트를 적은 레이블을 가진 데이터 세트 수준으로 감소시키는 방식 Oversampling : 적은 레이블을 가진 데이터 세.. 2023. 2. 18.
[JS_04][WEB] JavaScript 활용 코드 정리 정돈하기 다른 파일에 js언어로 작업해두기 사용시 src 속성으로 불러오기 library vs framework 라이브러리는 재사용하기 쉽도록 정리되어있는 '부품' 같은 저장소 프레임워크는 만들려는 기능의 공통된 부분 '반제품' 같은 작업소 jQuery > cdn > googlecdn $('a').css('color',color); UI vs API User Interface 웹을 이용하는 사용자가 조작하는 장치 Application Programming Interface 경고창처럼 웹브라우저에 사용되는 기능을 약속한 장치 API와 순서는 중요한 관계에 있습니다. 검색어 태그 삭제 태그 추가 document DOM (Document Object Model)객체 웹 브라우저 자체 window 객.. 2023. 2. 18.
[JS_03][WEB] JavaScript 문법 Program 언어 Program은 '순서'에 따라서 실행되도록 정의합니다. 조건에 따라서 반복하면서 실행되도록 할 수 있습니다. ● 조건문 Comparison operators IF-else ● 리팩토링 코드의 중복을 제거합니다. 유지 보수를 편리하게 만듭니다. this 키워드 : 태그 자신을 가리킵니다. 자주 사용하는 명령어는 변수에 할당하여 코드를 줄여줍니다. var target = document.querySelector('body'); ● 배열 많은 데이터를 잘 담아두는 수납장 같은 역할 /* get */ /* add */ /* count */ https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array A.. 2023. 2. 17.
[JS_02][WEB] HTML과 JS ● Console 웹 페이지 내에서 코드를 실행하는 가벼운 상황에서 이용하는 기능 우클릭 > 검사 > console ''.length : 문자열 길이 ● JavaScript data type 데이터 타입 - 문자열, 숫자 ● JavaScript String 문자열 길이 str.length https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String String - JavaScript | MDN String 전역 객체는 문자열(문자의 나열)의 생성자입니다. developer.mozilla.org ● Variables & assignment operator (=) var X = 1 ● 웹 브라우저 제어 - CSS : .. 2023. 2. 16.
[Regression/Classification] 교차 검증과 하이퍼 파라미터 튜닝 + pipeline GridSearchCV 교차검증과 하이퍼 파라미터 튜닝을 합니다. 랜덤 포레스트 하이퍼 파라미터 튜닝으로 예시 from sklearn.model_selection import GridSearchCV params = { 'n_estimators':[100], 'max_depth' : [6, 8, 10], 'min_samples_leaf' : [8, 12, 18], 'min_samples_split' : [8, 16, 20] } # model 객체 생성 후 GridSearchCV 수행 rf_clf = RandomForestClassifier(random_state=0, n_jobs=-1) grid_cv = GridSearchCV(rf_clf , param_grid=params , cv=2, n_jobs=-1.. 2023. 2. 16.
[Machine Learning][Classification] Classifier Algorithms ▶ 랜덤 포레스트 Bagging (Bootstrap aggregating): 같은 알고리즘으로 여러 개의 분류기를 만들어서 보팅으로 최종 결정하는 알고리즘 데이터 세트가 전체 데이터에서 일부가 중첩되게 샘플링 됩니다. 이를 부트스트래핑이라 합니다. bootstrapping : 여러 개의 데이터 세트를 중첩되게 분리하는 것 배깅의 대표적인 알고리즘입니다. 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행한 후 최종적으로 모든 분류기가 보팅을 하여 최종 예측 결정을 합니다. from sklearn.ensemble import RandomForestClassifier as RFC rf_clf = RFC(random_state= 0) rf_clf.fit.. 2023. 2. 16.
[Machine Learning][Classification] Ensemble Learning 앙상블 학습 여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법입니다. 앙상블 학습의 유형 대표적으로 ① 보팅(Voting), ② 배깅(Bagging), ③ 부스팅(Boosting) 이 있고 이외에도 스태깅 등 다양한 앙상블 방법이 있습니다. 보팅 VS 배깅 VS 부스팅 ● 보팅 : 서로 다른 알고리즘을 가진 분류기를 결합하여, 데이터 샘플링을 같게 가져가면서 학습을 수행합니다. - Hard Voting : 각각 분류기가 예측한 결괏값들 중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정합니다. 즉, 마치 '다수결 원칙' 처럼 결과값을 선정합니다. - Soft Voting : 분류기들의 레이블 값 결정 확률을 각 class별로 모두 .. 2023. 2. 15.
[Classification] Decision Tree 결정 트리 ● 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만듭니다. ● 규칙이 많아질수록 분류를 결정하는 방식이 더욱 복잡해지고 곧 과적합으로 이어집니다. 결정 트리 구조 ● Root Node : 뿌리의 시작점 ● Decision Node : 규칙 조건 ● Leaf Node : 결정된 클래스 값 ● Sub Tree : 규칙 노드(Decision Node)기반으로 분할되는 작은 트리 결정 노드의 규칙 조건 ● 정보 균일도가 높은 데이터 세트를 먼저 선택합니다. ● 정보의 균일도를 측정하는 대표적인 방법은 엔트로피를 이용한 정보 이득 지수와 지니 계수가 있습니다. ● 정보이득이 높은 속성을 기준으로 분할하거나 지니 계수가 낮은 속성을 기준으로 분할합니다. 정보 이득 정보 이득.. 2023. 2. 15.
[Clustering] DBSCAN DBSCAN¶ 밀도 기반 군집화 기하학적으로 복잡한 데이터 세트에도 효과적 특정 공간 내에 데이터 밀도 차이를 기반한 알고리즘 epsilon : 개별 데이터를 중심으로 입실론 반경을 가진 원형의 영역입니다. 핵심 포인트(최소 데이터 개수 이상(자신의 데이터 포함))와 이웃포인트(주변 영역에 포함)로 핵심포인트인 데이터를 정의합니다. Core point : 주변 영역 내에 최소 데이터 개수 이상을 가집니다. Border point : 핵심 포인트는 아니지만 이웃 포인트로 핵심 포인트를 가집니다. Noise point : 핵심 포인트와 이웃 포인트로 핵심포인트도 없습니다. 핵심 포인트를 서로 연결하면서 군비화를 구성합니다. In [29]: from sklearn.datasets import load_iris.. 2023. 2. 15.
[Clustering] GMM Gaussian Mixture Model¶ 확률 기반 군집화입니다. 적용 데이터가 여러 개의 가우시안 분포가 섞인 것으로 간주합니다. 즉, 전체 데이터 세트는 이를 구성하는 서로 다른 정규 분포 형태를 가진 여러 가지 확률 분포 곡선으로 구성될 수 있고, 개별 데이터가 이 중 어떤 정규 분포에 속하는지 결정하는 방식입니다. KMeans는 원형의 범위에서 군집화를 수행합니다. KMeans 보다 유연하게 다양한 데이터 세트에 잘 적용될 수 있다 (가령 직선으로 밀집된 데이터) In [1]: from sklearn.datasets import load_iris from sklearn.cluster import KMeans from sklearn.mixture import GaussianMixture impor.. 2023. 2. 15.
[Clustering] MeanShift 평균 이동 :¶ 군집의 중심을 데이터가 모여 있는 밀도가 가장 높은 곳으로 이동시킵니다. 컴퓨터 비전 영역에서 뛰어난 역할을 수행하는 알고리즘 입니다. 이미지나 영상 데이터에서 특정 개체를 구분하거나 움직임을 추적하는 데 사용합니다. In [12]: # 군집화 데이터 생성기 from sklearn.datasets import make_blobs # 평균 이동 (밀도가 가장 높은 곳) : MeanShift # 밀도의 추정 성능을 위한 최적의 대역폭 계산 : estimate_bandwidth from sklearn.cluster import MeanShift, estimate_bandwidth import pandas as pd import numpy as np import matplotlib.pyplot .. 2023. 2. 14.
[Machine Learning] K-Menas_2 비지도 학습에 속한다. 비슷한 위치에 있는 데이터들을 그룹으로 묶어 군집화 한다. 두 가지 변수에 속한 데이터 값들을 그룹핑 하는 경우 타겟 레이블이 없고 여러 데이터 값들만 있는 상태에서 군집화가 가능하다. 데이터들을 관찰하고 유클리드 거리값이 비슷한 데이터들 간에 묶는 과정을 거친다. K-Means 알고리즘 단계 step1. 군집의 수를 정합니다. k step2. 각 군집의 중심이 될 랜덤 k의 지점을 선택합니다. step3. 정한 중심으로 근처에 있는 데이터를 할당하여 k개의 군집을 만듭니다. step4. 각 군집의 새로운 중심을 계산합니다. step5. 각각의 데이터들을 새로운 근처의 중심에 재할당합니다. step6. step4부터 반복합니다. 최적의 k숫자 ELBOW METHOD: 최적의 군집 .. 2023. 2. 14.
[Clustering] K-means k-means In [1]: import matplotlib.pyplot as plt import numpy as np import pandas as pd # %matplotlib inline from sklearn.preprocessing import scale from sklearn.datasets import load_iris from sklearn.cluster import KMeans from sklearn.decomposition import PCA # 실루엣 분석 평가 지표 값을 구하기 위한 API 추가 from sklearn.metrics import silhouette_samples, silhouette_score In [2]: iris = load_iris() # Convert to D.. 2023. 2. 14.
728x90