728x90
반응형

전체 글 125

리액트 자동완성 기능 활성화

"emmet.includeLanguages" : { javascript" : "javascriptreact", "*html" : "html", } 1. "javascript": "javascriptreact"리액트에서 JSX 문법을 사용하기 때문에, javascript 파일 안에서도 HTML과 유사한 코드를 작성하게 된다.하지만, 기본적으로 Emmet은 .js 파일 안에서는 HTML 코드 자동 완성을 제공하지 않음이 설정을 추가하면, .js 파일에서도 Emmet이 리액트의 JSX 문법을 인식하고, HTML 태그 자동 완성 기능을 사용할 수 있게 됨.2. "*html": "html"이 부분은 모든 파일에서 HTML 자동 완성 기능을 제공하려는 설정리액트 뿐만 아니라, .html 확장자가 아니더라..

깃허브 대용량 파일 push

(nlpintent) ☁️  backend [2_branch] ⚡  git push origin 2_branchEnter passphrase for key '/Users/jerry/.ssh/id_rsa': Uploading LFS objects: 100% (2/2), 1.4 GB | 0 B/s, done.                                                                                                                                                            Enumerating objects: 89, done.Counting objects: 100% (89/89), done.Delt..

Github 2024.09.05

하이퍼파라미터 튜닝 후 모델 성능 저하 원인

과적합(Overfitting): 하이퍼파라미터를 너무 세밀하게 조정한 경우, 모델이 학습 데이터에 지나치게 맞추어져서 일반화 능력이 떨어질 수 있다. 이로 인해 새로운 데이터에 대한 성능이 저하될 수 있다.탐색 공간의 오류(Search Space Issue): 하이퍼파라미터 튜닝 시 잘못된 하이퍼파라미터 범위나 값들을 탐색할 수 있다. 예를 들어, 학습률이 너무 낮거나 높게 설정되면 최적화 과정에서 문제가 발생할 수 있다.데이터의 불균형(Data Imbalance): 하이퍼파라미터 튜닝 과정에서 특정 클래스나 패턴에 대한 가중치가 과도하게 조정되어, 모델이 데이터의 일부에만 적응할 수 있다. 이로 인해 전체적인 성능이 저하될 수 있다.과도한 복잡성(Too Much Complexity): 하이퍼파라미터를 ..

AI Development 2024.09.03

하이퍼파라미터 튜닝 외 모델 성능 향상시키는 방법

1. 데이터 전처리(Data Preprocessing)설명: 모델의 성능은 입력 데이터의 품질에 크게 좌우된다. 데이터의 전처리는 모델이 데이터를 더 잘 이해하고 학습할 수 있도록 도와준다.방법:데이터 정규화/표준화: 입력 데이터의 스케일을 맞춰 모델이 특정 특징에 과도하게 의존하지 않도록 한다.결측치 처리: 결측값을 적절히 처리하거나 제거하여 모델의 예측 성능을 저하시키지 않도록 한다.특징 엔지니어링(Feature Engineering): 중요한 특징을 새롭게 만들거나, 불필요한 특징을 제거하여 데이터의 품질을 높인다.효과: 데이터의 품질이 개선되면 모델이 더 잘 학습할 수 있고, 오버피팅(overfitting)이나 언더피팅(underfitting)을 줄일 수 있다.2. 특징 선택(Feature Sel..

하이퍼파라미터 튜닝방법

GridSearchCV, RandomizedSearchCV, 그리고 Bayesian Optimizer는 머신러닝 모델의 하이퍼파라미터 튜닝을 위한 방법들이다. 각 방법은 특정 상황에서 유리하거나 불리할 수 있으며, 이러한 방법들을 비유를 통해 이해하면 더 쉽게 그 차이점을 파악할 수 있다.1. GridSearchCV개념: GridSearchCV는 설정된 하이퍼파라미터의 모든 조합을 일일이 테스트하여 최적의 조합을 찾는 방법이다. 예를 들어, 두 개의 하이퍼파라미터가 있고 각각 3개의 값을 가진다면, 총 3x3=9개의 조합을 모두 시도해 보는 것이다.비유: 축구장에서 골을 넣기 위해 여러 위치에서 슛을 해보는 것과 같다. 모든 위치에서 슛을 해본다면, 가장 정확한 위치를 찾을 수 있다. 그러나 모든 위치에..

[트러블슈팅] 모델 성능 저하 및 낮은 예측 성능

원인 : 모델이 대부분 클래스에 대해 낮은 성능 보임, 데이터 불균형해결방법 : 메타정보 추가 및 하이퍼파라미터 튜닝param_grid = { 'max_depth': [3, 5, 7, 9], 'learning_rate': [0.01, 0.1, 0.2], 'n_estimators': [100, 200, 300], 'subsample': [0.8, 1.0], 'colsample_bytree': [0.8, 1.0]}grid_search = GridSearchCV(estimator=xgb_model, param_grid=param_grid, cv=3, n_jobs=-1, verbose=2, scoring='f1_weighted')grid..

카테고리 없음 2024.09.02

SMOTE를 사용할 때, 발생하는 오류

ValueError: Expected n_neighbors  원인 : SMOTE를 사용할 때, 특정 클래스의 샘플 수가 k_neighbors 값보다 적을 때 발생하는 오류k_neighbors는 새로운 샘플을 생성하기 위해 사용하는 이웃의 수를 나타내며, 클래스 샘플 수보다 클 수 없다. 해결방법 : k_neighbors 값을 해당 클래스 샘플 수 보다 작게 설정하거나, 최소 1로 설정하여 문제를 해결smote = SMOTE(random_state=42, k_neighbors=min(5, min_class_samples-1))TypeError: numpy boolean subtract, the '-' operator, is not supported 원인 : 'numpy' 배열에서 부울형 데이터 처리할 때 ..

XGBoost

XGBoost는 "Extreme Gradient Boosting"의 약자로, 머신러닝에서 주로 사용되는 매우 강력하고 효율적인 알고리즘이다. XGBoost는 회귀와 분류 문제 모두에 사용할 수 있으며, 특히 대규모 데이터 세트에서 뛰어난 성능을 보이는 것으로 유명하다. 개념XGBoost는 여러 개의 약한 학습기(보통 결정 트리)를 결합하여 강력한 모델을 만드는 앙상블 학습 기법의 일종이다. 앙상블 학습은 여러 개의 모델을 결합해 더 좋은 성능을 얻는 방법을 의미한다. XGBoost는 특히 그래디언트 부스팅(Gradient Boosting)이라는 앙상블 방법을 사용하며, 이는 각 모델이 이전 모델의 오류를 줄이는 방향으로 학습하는 것을 의미한다.비유XGBoost를 비유하자면, 시험 준비 과정에서의 피드백을..

로짓함수 (Logit Function)

이 함수는 로지스틱 회귀에서 확률을 계산하는 데 사용되며, 주어진 입력 값이 특정 클래스 (예: 1 또는 0)에 속할 확률을 나타낸다.여기서 p는 특정 사건이 발생할 확률을 의미한다.이 수식은 p와 1-p의 비율 (오즈 비율)을 로그 변환한 값이다.로그 변환을 통해 함수의 결과는 실수 전체를 나타낼 수 있게 된다.  유도과정1. 확률의 정의우선, 어떤 사건이 발생할 확률 ppp가 주어졌다고 가정한다. 이 확률은 다음과 같이 표현된다:2. 오즈 비율(Odds Ratio)오즈 비율은 사건이 발생할 확률 p와 사건이 발생하지 않을 확률 1−p의 비율로 정의된다:오즈 비율은 사건이 발생할 가능성과 발생하지 않을 가능성의 비율을 나타내며, 이 값은 0부터 무한대까지의 값을 가질 수 있다.3. Logit 함수 정의..

로지스틱 회귀분석 (Logistic Regression)

1. 로지스틱 회귀의 기본 개념목적: 로지스틱 회귀는 입력 변수(독립 변수)를 사용하여 종속 변수(결과)가 특정 클래스(0 또는 1)에 속할 확률을 예측하는 것이다.출력: 로지스틱 회귀는 특정 사건이 발생할 확률, 즉 종속 변수가 1이 될 확률을 출력한다. 이 확률을 사용해 종속 변수를 0 또는 1로 분류한다.2. 로지스틱 회귀의 수학적 배경로지스틱 회귀의 핵심은 **시그모이드 함수(Sigmoid Function)**를 사용하는 것이다. 시그모이드 함수는 입력된 값이 어떤 범위에 있더라도 0과 1 사이의 값으로 변환해준다.시그모이드 함수:여기서 z는 선형 회귀식으로 표현된다:즉, 로지스틱 회귀에서 예측 확률은 다음과 같이 표현된다:3. 로지스틱 회귀의 해석계수 해석: 각 독립 변수의 계수 βi\beta_..

맥OS 코랩에서 워드클라우드 한글깨짐

!apt-get install fonts-nanum* -qqimport matplotlib.font_manager as fmsys_font = fm.findSystemFonts()[f for f in sys_font if 'Nanum' in f]이런식으로 경로 확인 가능font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'wordcloud = WordCloud(font_path=font_path, width=800, height=400, background_color='white').generate(text)​성공 ㅋㅋ 근데 전처리 똑바로 안해서 .... 다시 해야 겠군

카테고리 없음 2024.08.22

쟤리 데이터 전처리 할 때 자주쓰는 코드

열 삭제df = df.drop(columns=['B'])df = df.drop(columns=['B', 'C']) null 값 확인df.isnull().sum() 특정값을 가진 행 삭제df = df[df['A'] != 2] 특정범위 값 바꾸기 1# 값 변환 함수 정의def change_value(x): if 20 특정범위 값 바꾸기 2# [20-29] 범위의 값을 2로 변경df.loc[(df['Age'] >= 20) & (df['Age'] = 30) & (df['Age']  특정값 다른 값으로 바꾸기 1df['A'] = df['A'].replace(1, 10) 특정값 다른 값으로 바꾸기 2df['A'] = df['A'].replace({1: 10, 2: 20}) 특정값 포함하면 삭제 # '없음'을 ..

하이퍼파라미터 (Hyperparameter)

하이퍼파라미터는 모델이 학습을 할 때 사용되는 설정값들로, 모델 학습 과정 외부에서 설정되는 변수입니다.모델의 구조나 학습 방식에 영향을 미치는 값들을 의미하며, 이 값들은 학습 과정에서 변경되지 않습니다.예시:학습률(learning rate): 모델이 학습할 때, 가중치(weight)를 얼마나 크게 또는 작게 변경할지를 결정하는 값입니다.배치 크기(batch size): 한 번에 모델이 학습할 데이터의 양을 의미합니다. 예를 들어, 배치 크기가 32라면 한 번의 학습에서 32개의 데이터를 사용하게 됩니다.에포크 수(epoch): 전체 데이터셋을 몇 번 반복해서 학습할지를 결정하는 값입니다.하이퍼파라미터는 모델의 성능에 큰 영향을 미치기 때문에, 적절한 값을 찾기 위해 여러 번 실험을 통해 최적화를 시도..

파인튜닝의 유형

1. 완전 파인튜닝(Full Fine-Tuning)완전 파인튜닝(Full Fine-Tuning)은 사전 학습된 모델의 모든 층을 학습시키는 방법이다. 이 방법에서는 모델의 모든 가중치가 새로운 데이터에 맞게 조정된다. 예를 들어, 이미지 인식 모델에서 사전 학습된 모든 계층을 사용하여 새로운 데이터셋으로 학습을 진행하면, 모델은 기존에 학습한 지식을 활용하면서도 새로운 데이터에 최적화된 상태로 전환된다. 이 방법은 특히 모델이 새로운 도메인에 대해 완전히 적응해야 할 때 유용하다. 2. 부분 파인튜닝(Partial Fine-Tuning)부분 파인튜닝(Partial Fine-Tuning)은 모델의 일부 층만 학습시키고 나머지 층은 고정(freeze)된 상태로 유지하는 방법이다. 예를 들어, 사전 학습된 모..

파인튜닝 (fine-tunning)

파인튜닝(fine-tuning)은 인공지능(AI) 및 머신러닝(ML)에서 매우 중요한 개념으로, 사전 학습된 모델(pre-trained model)을 특정 작업이나 도메인에 맞춰 성능을 향상시키기 위해 추가 학습을 진행하는 과정을 의미합니다. 이 과정을 통해 모델은 일반적인 패턴을 이해하는 것에서 더 나아가 특정 문제를 해결하는 데 필요한 지식을 얻게 됩니다.파인튜닝의 세부 과정사전 학습 모델 선택:일반적으로 대규모 데이터셋으로 학습된 언어 모델(예: BERT, GPT)이나 이미지 처리 모델(예: VGG, ResNet)을 사용합니다. 이러한 모델들은 이미 다양한 일반적인 데이터를 통해 기초적인 언어 또는 이미지 인식을 학습한 상태입니다.예를 들어, BERT 모델은 다양한 텍스트를 학습하여 문법과 문맥을 ..

모델 컴파일 (model compile)

모델 컴파일모델 컴파일은 딥러닝 모델이 학습을 시작하기 전에 필요한 설정을 완료하는 단계입니다. 이 과정에서 사용자는 최적화 알고리즘, 손실 함수, 평가지표를 지정하여 모델이 어떻게 학습하고 성능을 평가할지 결정합니다.1. 모델 컴파일모델 컴파일 단계는 딥러닝 모델이 학습할 준비를 하는 과정으로, 다음과 같은 세 가지 주요 요소로 구성됩니다: 최적화기(Optimizer): 모델의 가중치를 어떻게 업데이트할지를 결정합니다. 손실 함수(Loss Function): 모델의 예측 성능을 평가하는 기준입니다. 평가지표(Metric): 모델 학습 과정을 모니터링하기 위한 지표입니다.아래는 Python 코드 예시입니다:model.compile(optimizer=Adam(learning_rate=2e-..

카테고리 없음 2024.08.12

데이터 증강(data augmentation)

한국어 텍스트 데이터셋의 데이터 증강(data augmentation)은 자연어 처리(NLP)에서 모델의 성능을 개선하기 위해 사용되는 기법으로, 특히 데이터가 부족할 때 유용합니다. 데이터 증강 기법은 원래의 데이터를 변형하여 새로운 데이터를 생성함으로써 모델의 일반화 능력을 향상시킵니다. 아래는 한국어 텍스트 데이터 증강의 주요 방법과 종류입니다.1. 백 트랜슬레이션(Back Translation)설명: 원본 문장을 다른 언어로 번역한 후 다시 한국어로 번역하여 새로운 문장을 생성하는 방법입니다.장점: 문장의 의미를 유지하면서도 다양한 표현을 생성할 수 있습니다.2. 동의어 교체(Synonym Replacement)설명: 문장 내 특정 단어를 같은 의미를 가진 동의어로 교체하여 변형된 문장을 만드는 ..

감정을 분석하고 뽑아낼 수 있는 오픈소스 모델과 라이브러리

1. NLTK (Natural Language Toolkit)설명: NLTK는 파이썬에서 자연어 처리를 위한 강력한 라이브러리로, 기본적인 감정 분석을 지원합니다.특징: 토큰화, 품사 태깅, 네임드 엔티티 인식 등 다양한 NLP 기능을 포함하고 있습니다.사용법: NLTK의 VADER 모듈은 소셜 미디어 텍스트와 같이 간단한 감정 분석에 적합합니다.2. TextBlob설명: TextBlob은 파이썬용 라이브러리로, 감정 분석을 포함한 여러 NLP 작업을 쉽게 수행할 수 있도록 설계되었습니다.특징: 사용이 매우 간단하고, 긍정, 부정, 중립 감정 분석 결과를 쉽게 얻을 수 있습니다.from textblob import TextBlobtext = "I love this product!"blob = TextBl..

02. 하이퍼파라미터 튜닝 시 조정하는 주요 파라미터와 접근 방법

하이퍼파라미터 튜닝은 모델 성능을 최적화하는 중요한 단계입니다. 일반적으로 조정하는 파라미터와 접근 방법은 다음과 같습니다.주요 하이퍼파라미터:학습률 (Learning Rate): 모델이 학습할 때 가중치를 조정하는 크기를 결정합니다. 너무 크면 최적화가 불안정해지고, 너무 작으면 학습이 매우 느려질 수 있습니다.배치 크기 (Batch Size): 한 번에 처리하는 데이터 샘플의 수입니다. 큰 배치는 빠른 계산을 가능하게 하지만, 메모리 사용이 증가할 수 있습니다.규제 파라미터 (Regularization Parameter): 과적합을 방지하기 위해 가중치에 페널티를 부과하는 정도를 설정합니다. L1, L2 규제가 대표적입니다.드롭아웃 비율 (Dropout Rate): 신경망에서 특정 비율의 노드를 무작..

카테고리 없음 2024.08.11

형태소 분석 (Morphological Analysis)

형태소 분석은 자연어 처리(NLP)에서 중요한 기술로, 문장을 구성하는 단어를 더 작은 의미 단위로 분해하는 과정입니다. 이 과정은 컴퓨터가 인간의 언어를 더 잘 이해하고 처리할 수 있도록 돕습니다. 이 글에서는 형태소 분석의 개념과 중요성, 다양한 방법, 그리고 실생활에서의 적용 사례를 살펴보겠습니다.형태소 분석의 개념형태소 분석은 단어를 형태소라는 최소 의미 단위로 나누는 과정입니다. 형태소는 의미를 가진 가장 작은 단위로, 예를 들어 '먹었습니다'라는 단어는 '먹(어간)', '-었(시제)', '-습니다(종결어미)'로 나눌 수 있습니다. 이러한 분석을 통해 컴퓨터는 문장의 구조와 의미를 더 잘 이해할 수 있습니다.형태소 분석의 중요성정확한 의미 파악: 단어를 구성하는 각 형태소의 의미를 이해함으로써 ..

728x90
반응형