일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 캐치카페
- 프로그래머스 파이썬
- 프로그래머스
- gs25
- Kaggle
- 우분투
- dacon
- SW Expert Academy
- AI 경진대회
- 코로나19
- 편스토랑 우승상품
- ChatGPT
- 백준
- hackerrank
- ubuntu
- 데이콘
- 자연어처리
- programmers
- Real or Not? NLP with Disaster Tweets
- 파이썬
- github
- Git
- Baekjoon
- 금융문자분석경진대회
- 맥북
- Docker
- PYTHON
- leetcode
- 편스토랑
- 더현대서울 맛집
- Today
- Total
목록
반응형
Kaggle (27)
솜씨좋은장씨
Jigsaw Multilingual Toxic Comment Classification Use TPUs to identify toxicity comments across multiple languages www.kaggle.com Kaggle에서 새로운 대회가 오픈하였습니다. Jigsaw Multilingual Toxic Comment Classification 대회입니다. 여러 커뮤니티를 보니 그동안 여러번 오픈했던 대회인데 이번 대회의 특이한 점은 다국어를 지원하는 모델을 만드는 것과 TPU활용을 장려하는 점이 특이한 점인 것 같습니다. 학습으로 사용하는 데이터는 영어이고 그 데이터로 학습한 모델로 맞춰야할 테스트 데이터는 포르투갈어, 러시아어, 터키어, 스페인어 등 이라고 합니다. 그동안 재난문자트..
캐글 노트북에서 필요한 라이브러리를 설치하기위해 평소에 주피터 노트북이나 구글 코랩에서 했던 방법대로 하게되면 다음과 같은 출력과 함께 종료되지 않는 것을 볼 수 있습니다. !pip install keras_bert WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/keras-bert/ WARNING: Retrying (Retry(tot..
Kaggle 도전 24회차! 이제 정말 대회 종료까지 얼마 남지 않았습니다. 지난 23일동안 정말 다양한 데이터 전처리 방법과 LSTM, Bi-LSTM, CNN, CNN-LSTM, RNN, GRU, BERT등 정말 다양한 모델을 사용하여 결과를 도출하여 보았을때 BERT로 도출한 결과가 가장 좋았습니다. 남은 2일은 BERT를 활용하여 결과를 내고 최종 제출 파일을 선택하기로 하였습니다. 그리고 1.0000의 Public Score를 갖고 있는 사람들중에 일부는 test 데이터의 정답 라벨을 다운로드 받아 그 데이터를 제출한 것을 알게되었고 정말 많이 실망하게 되었습니다. 이것을 알고 검색해보던 중 지난 다른 대회에서도 이런 cheating이 있었고 상금까지 받아가 기사에 났던 적이 있는 것도 알게되었고..
Kaggle 도전 23회차! 오늘은 DACON에서 주최했던 지난 KB 금융문자분석 경진대회에서 1위를 한 스팸구이 팀의 방법을 벤치마킹하여 도전해보았습니다. hotorch/Dacon_14th_Competition_code Dacon 14th Competition 1st Place- "Financial smishing character analysis" - hotorch/Dacon_14th_Competition_code github.com TF-IDF 에서 TF에 1+log(TF) 한 방식을 사용하였고 lightGBM모델에 GridSearchCV를 통한 최적화를 실시하였습니다. 데이터 전처리방식은 다음과 같습니다. he's -> he is / fromåÊwounds -> from wounds 와 같이 바꾸..
Kaggle 도전 22회차! 오늘은 아르바이트를 다녀온 후 시간이 빠듯하여 그동안 제출했던 모델중에 가장 결과가 좋았던 모델들에 바뀐 데이터 전처리방식을 적용한 데이터를 활용하여 학습하고 결과를 도출해보았습니다. 데이터 전처리방식은 21회차와 동일합니다. from keras.preprocessing.text import Tokenizer max_words = 12396 tokenizer = Tokenizer(num_words = max_words) tokenizer.fit_on_texts(X_train) X_train_vec = tokenizer.texts_to_sequences(X_train) X_test_vec = tokenizer.texts_to_sequences(X_test) import matp..
Kaggle 도전 20회차! 이제 정말 종료까지 얼마 남지 않았았습니다. 오늘은 먼저 19회차의 방법으로 전처리를 한후에 TF-IDF로 임베딩을하고 lightGBM 모델을 사용하여 결과를 내보았습니다. import re clear_text_list = list(train['clear_text']) X_train = [] for clear_text in clear_text_list: word_list = word_tokenize(clear_text) word_list = [word for word in word_list if len(word) > 2] word_list = [word for word in word_list if word not in stop_words] # word_list = [stemm..
Kaggle 20회차! 이제 최종 23일까지 약 5일밖에 남지않았습니다. 0.10000의 점의 점수를 얻은 분들은 도대체 어떤 분들인지 빨리 대회가 끝나고 수상자들의 코드가 공개되었으면 하는 바램입니다. 오늘은 지금까지 제출했던 것들 중 가장 결과가 좋았던 9회차에 사용했던 버트모델에 새로운 방법의 데이터 전처리 방식을 사용하여 결과를 도출하고 제출해 보았습니다. 전처리 방식은 NLP-disaster-tweets-1 Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 위의 링크에서 여러 이상한 단어들을 원래의 단어로 잘 바꾸어주는 parse_tweet이..
Kaggle 대회 19회차 오늘은 Bi-LSTM 모델을 활용해 보았습니다. from keras import optimizers from tqdm import tqdm def getBestParams(params_list, lstm_hidden, embedding): count = 0 histories = [] my_accs = [] my_batch = [] my_lr = [] my_epoch = [] embeddings = [] lstm_hiddens = [] for i in tqdm(range(len(params_list['batch_size']))): for j in range(len(params_list['learning_rate'])): for k in range(len(params_list['e..
clear_text_list = list(test['clear_text']) X_test = [] for clear_text in clear_text_list: word_list = word_tokenize(clear_text) word_list = [word for word in word_list if len(word) > 2] word_list = [word for word in word_list if word not in stop_words] # word_list = [stemmer.stem(word) for word in word_list] word_list = [lemmatizer.lemmatize(word) for word in word_list] X_test.append(word_list) ..
Kaggle 대회 17회차! 오늘은 기존의 데이터 전처리 방식에서 tokenizer를 word_tokenize에서 TreebankWordTokenizer로 변경하고 토큰화 후 stemmer를 사용하지 않고 lemmatizer를 사용하여 보았습니다. 기존의 방식보다 조금 더 원형의 형태를 보존해서 토큰화가 된 것을 볼 수 있었습니다. 모델은 16회차의 모델에 그대로 적용해보았습니다. 첫번째 제출 from keras import optimizers adam = optimizers.Adam(lr=0.05, decay=0.1) model_1 = Sequential() model_1.add(Embedding(vocab_size, 100)) model_1.add(GRU(32)) model_1.add(Dropout(..
Kaggle 도전 16회차 오늘은 캐글에 공개되어있는 노트북 들 중에서 한분이 약어를 다시 풀어서 전처리한 것을 보고 저는 그 노트북에서 약어가 담겨있는 dictionary만 빼와서 전처리를 하여 도전해보았습니다. AdaptNLP (Easier BERT-based Models) Explore and run machine learning code with Kaggle Notebooks | Using data from Real or Not? NLP with Disaster Tweets www.kaggle.com 먼저 필요한 라이브러리를 import해주고 약어 부분을 가져왔습니다. import nltk nltk.download("punkt") nltk.download("stopwords") from nltk...
Kaggle 15회차 오늘은 GRU모델을 활용해보기로 했습니다. 첫번째 제출 model = Sequential() model.add(Embedding(vocab_size, 100)) model.add(GRU(100)) model.add(Dropout(0.5)) model.add(Dense(2, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['acc']) history = model.fit(x_train, y_train, batch_size=32, epochs=3, validation_split=0.1) 결과 두번째 제출 model3 = Sequential() model3.add(Embed..
Kaggle 14회차! 오늘은 금융문자분석밋업때 수상자들이 사용했던 lightGBM모델을 활용해보았습니다. Google Colab에 LightGBM설치 [Ensemble] Colab에서 LightGBM 사용하기! 원자력 발전소 상태판단 알고리즘을 도전해보면서 머신러닝을 공부하며 Gradient Boosing알고리즘 중의 하나인 LightGBM 알고리즘을 알게되었고 DACON KB 금융문자분석경진대회에서도 수상자들이 사용했다는 것을.. somjang.tistory.com 먼저 저는 Colab환경에서 진행하려고하여 위의 링크 방법대로 lightGBM을 설치해주었습니다. !nvidia-smi 무료버전임에도 Tesla P100 GPU가 할당되어 놀랐습니다. 먼저 lightGBM모델을 사용하기위해서 데이터를 처리..
Kaggle 13회차! 오늘은 저번 12회차까지 데이터 전처리를 했던 방법과 Glove 임베딩 기법을 사용하고 attention모델과 CNN모델을 활용하여 학습하고 결과를 도출해 제출해보았습니다. X_train = [] alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] god_list = ['buddha', 'allah', 'jesus'] train_text_list = list(train['text']) clear_text_list = [] for text in train_text_list: text..
Kaggle 도전 12회차! 오늘은 11회차에서 데이터 전처리 시 잘못 설정했던 부분들을 수정하여 다시 도전해보았습니다. from tqdm import tqdm alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] god_list = ['buddha', 'allah', 'jesus'] train_text_list = list(train['text']) text_list_corpus = '' for i in tqdm(range(len(train_text_list))): text_list_corpus = te..
Kaggle 도전 11일차! 오늘은 어제 데이터 전처리했던 방식에서 조금 더 추가하여 전처리를 진행하고 학습 시킨 후 결과를 도출하여 제출해보았습니다. 먼저 추가로 어떤 데이터를 어떻게 전처리할지 보기위해서 워드클라우드도 그려보고 단어의 빈도수도 확인해보았습니다. 먼저 저번주에 워드클라우드를 그렸던 방법에서 길이가 3이상인 단어와 nltk의 불용어에 없는 단어만 남겨놓고 그려보았습니다. (이 글을 쓰면서 정말 큰 실수했다고 생각되는 부분은 stemmer.stem(word)하기 전에 불용어 처리를 했어야했는데 이미 stemming이 완료된 이후에 불용어 처리를 하다보니 the가 thi로 바뀌는 등 제대로 불용어 처리가 되지 않았던 것 같습니다.) word_list = word_tokenize(clear_t..
Kaggle 도전 10회차! 데이터를 가공하여 학습하고 결과를 도출해보았습니다. alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] god_list = ['buddha', 'allah', 'jesus'] train_text_list = list(train['text']) text_list_corpus = '' for text in train_text_list: text_list_corpus = text_list_corpus + text text_list_corpus = text_list_corpus.lo..
Kaggle 도전 9일차! 오늘은 한국인공지능 아카데미 실용교육에서 배운 BERT에 학습데이터를 있는 그대로 사용하여 결과를 내어 보았습니다. kimwoonggon/publicservant_AI Contribute to kimwoonggon/publicservant_AI development by creating an account on GitHub. github.com def get_bert_finetuning_model(model): inputs = model.inputs[:2] dense = model.layers[-3].output outputs = keras.layers.Dense(2, activation='sigmoid',kernel_initializer=keras.initializers.Tr..
Kaggle 도전 8회차! 오늘은 결과가 가장 좋았던 7회차 모델에 데이터 전처리 방식을 달리하여 제출해보았습니다. 데이터 전처리는 https://~~ 를 정규식을 활용하여 LINK로 변경하여 넣어주었습니다. from tqdm import tqdm import re text_list = list(train_data['text']) clear_text_list = [] for i in tqdm(range(len(text_list))): clear_text = text_list[i].lower() pattern = '(http|ftp|https)://(?:[-\w.]|(?:%[\da-fA-F]{2}))+/(?:[-\w.]|(?:%[\da-fA-F]{2}))+' clear_text = re.sub(patter..
Kaggle 도전 7회차! 오늘은 CNN 모델을 사용해보기로 했습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 128, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(256, 3, padding='valid', activation='relu', strides=1)) model.add(GlobalMaxPooling1D()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(2, activation='sigmoid')) model.compile(optimizer='adam', loss='bi..
Kaggle 도전 6회차! 오늘은 좀 더 간단한 신경망 모델을 사용해보려고합니다. 첫번째 제출 model2 = Sequential() model2.add(Embedding(max_words, 100, input_length=23)) # 임베딩 벡터의 차원은 32 model2.add(Flatten()) model2.add(Dense(128, activation='relu')) model2.add(Dense(2, activation='sigmoid')) model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) history = model2.fit(X_train_vec, y_train, epochs=3, batch_si..
Kaggle 도전 5회차! 오늘은 CNN-LSTM모델에서 SimpleRNN모델로 바꾸어 테스트 해보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100)) # 임베딩 벡터의 차원은 32 model.add(SimpleRNN(128)) # RNN 셀의 hidden_size는 32 model.add(Dense(2, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) history = model.fit(X_train_vec, y_train, epochs=3, batch_size=32, validation_sp..
Kaggle 도전 4회차! 오늘은 저번 CNN-LSTM모델에서 마지막 레이어의 activation이 sigmoid가 아닌 softmax였던 것을 sigmoid로 바꾸어 시도해보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(128, 3, padding='valid', activation='relu', strides=1)) model.add(MaxPooling1D(pool_size=4)) model.add(LSTM(128)) model.add(Dense(2, activation='sigmoid')) model.compile(o..
Kaggle 도전 3회차! 데이터 전처리는 1회차와 2회차 동일하게 실행하고 모델만 Bi-LSTM에서 CNN-LSTM으로 바꾸어보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(128, 3, padding='valid', activation='relu', strides=1)) model.add(MaxPooling1D(pool_size=4)) model.add(LSTM(128)) model.add(Dense(2, activation='softmax')) model.compile(optimizer='adam', loss='cat..
Kaggle 2회차 도전! 오늘은 데이터 전처리는 그대로 두고 저번 LSTM 모델을 Bi-LSTM으로만 바꾸어서 시도해보았습니다. 첫번째 시도 model = Sequential() model.add(Embedding(max_words, 100, input_length=max_len)) model.add(Bidirectional(LSTM(128))) model.add(Dropout(0.2)) model.add(Dense(2, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) history = model.fit(X_train_vec, y_train, epochs=3, ba..
Kaggle Competition 도전 1일차! DACON에서 진행했던 원자력발전소 상태판단 알고리즘 경진대회도 끝났겠다 한국인공지능 아카데미 BERT 실용교육에서 알게 된 Real or Not? NLP with Disaster Tweets! Kaggle Competition을 도전해보기로 했습니다. 이번에는 하루 5번 제출이 가능하고 3월 23일까지 기간이 넉넉하게 있기에 어떠한 모델들을 사용해 볼지 어떤 데이터 전처리를 진행한 뒤에 실시해볼지 고민해서 계획 후에 도전하며 모델의 성능을 높여나가는 과정을 기록해보려합니다. 오늘은 처음으로 도전하는 날이고 기존에 알고있던 nltk를 활용한 토큰화, stemming, Keras 모델을 활용하여 시도해보았습니다. 진행 환경은 Google Colab의 TPU ..
Real or Not? NLP with Disaster Tweets Predict which Tweets are about real disasters and which ones are not www.kaggle.com DACON 에서 진행했던 KB 금융문자분석 경진대회도 끝나고 Programmers에서 진행했던 2020 Dev-Matching 자연어처리 개발자 과제도 끝나고 자연어처리 관련 Competition이 어디 없나 찾던 중 지난 BERT 교육에서 알게된 Kaggle Competition 중 하나인 Real or Not? NLP with Disaster Tweets Competition에 도전해보기로 했습니다. 재난 문자인지 아닌지! 영어로 되어있는 트윗을 이진분류하는 Competition 입니다..