본문 바로가기

728x90

Artificial Intelligence/Machine Learning

(11)
[MachineLearning] 머신러닝과 프로그래밍의 차이 머신러닝과 프로그래밍의 차이는 무엇이고, 왜 그토록 사람들이 머신러닝, 딥러닝을 필요로 하는지 알아보도록 하겠습니다. 우선 네이버 지식백과에 두 단어를 검색해보았습니다. 머신러닝: 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야 프로그래밍: 컴퓨터에 부여하는 명령을 만드는 작업 네이버 지식백과의 정의에 따라서 차이점을 생각해보면 다음과 같습니다. 프로그래밍은 프로그래머가 일어날 수 있는 모든 상황에 대해서 명시적으로 명령을 만들어야 하고, 머신러닝은 프로그래머가 일어날 수 있는 모든 상황에 대하여 명시적으로 명령을 부여하지 않아도 능동적으로 결과를 예측할 수 있다는 점에서 차이점이 있어 보입니다. 예를 들어 y = 2x + 1의 식의 결과를 알고 싶다면 어떻게 해야 할까? 각각의..
[Machine Learning] 가짜 뉴스 분류 모델 - 파라미터 튜닝 [Machine Learning] 가짜 뉴스 분류 모델 - 머신러닝 모델에 이어서 GridSearchCV를 사용하여 파라미터 튜닝을 진행해보겠습니다. from sklearn.model_selection import GridSearchCV GridSearchCV를 통해서 임의로 설정한 파라미터들 중에 가장 좋은 성능을 내게 해주는 값을 찾아서 return 해줍니다. parameters = { 'alpha': [ 0.25, 0.5 ,1], 'fit_prior': [True, False] } alpha와 fit_prior 값을 설정해줍니다. grid_search = GridSearchCV(naive_bayes, parameters, n_jobs=-1, cv=6, scoring="roc_auc") alpha가 ..
[Machine Learning] 가짜 뉴스 분류 모델 - 머신러닝 모델 [Machine Learning] 가짜 뉴스 분류 모델 - 데이터 전처리의 내용에 이어서 머신러닝 모델을 만들어 보겠습니다. from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB 학습 데이터와 검증 데이터로 나눌 train_test_split, naive bayes 모델인 MultinomialNB, clean_message에 있는 단어들의 특징 추출을 위해 문자열 데이터를 수치 벡터로 변환시켜주는 CountVectorizer를 import 해줍니다. X = result_df['..
[Machine Learning] 가짜 뉴스 분류 모델 - 데이터 전처리 [Machine Learning] 가짜 뉴스 분류 모델 - 데이터 수집 및 확인의 내용에서 이어집니다. result_df에 있는 title과 text 열에 있는 데이터에서 필요한 부분과 필요하지 않은 부분으로 나누어서 데이터 전처리를 진행하겠습니다. import nltk nltk.download('stopwords') nltk.download("names") [nltk_data] Downloading package stopwords to . . . [nltk_data] Package names is already up-to-date! True 영어 텍스트 데이터 전처리를 위해서 nltk를 import 하고, stopwords와 names를 다운로드해준다. 마지막에 True가 출력되어야 정성적으로 설치가 ..
[Machine Learning] 가짜 뉴스 분류 모델 - 데이터 수집 및 확인 진짜 뉴스와 가짜 뉴스가 무엇인지 판별하는 분류 모델을 만들어보겠습니다. 우선 데이터셋은 kaggle-fake and real news dataset에서 다운로드할 수 있습니다. 최종적으로 98.59%의 정확도를 가진 모델을 만들 수 있습니다. fake_path = './data/fake.csv' true_path = './data/true.csv' fake_df = pd.read_csv(fake_path) true_df = pd.read_csv(true_path) 우선 사용할 데이터를 pd.read_csv를 사용하여 가져와줍니다. print(fake_df.tail(3)) title \ 23478 Sunnistan: US and Allied ‘Safe Zone’ Plan to T... 23479 How ..
[Machine Learning] 영화 관객수 예측 모델 (5) 이제 마지막으로 GridSearchCV를 사용하여 최적의 파라미터를 찾아 모델에 적용해보겠다. from sklearn.model_selection import GridSearchCV GridSearchCV를 import 해준다. params = { 'learning_rate': [0.1, 0.01, 0.003], 'min_child_samples': [20, 30] } gs = GridSearchCV(estimator=model, param_grid=params, scoring= 'neg_mean_squared_error', cv=k_fold) LGBMRegressor에서 설정할 수 있는 learning_rate, min_child_samples 값을 적당하게 설정하고, GridSearchCV에 값을 초..
[Machine Learning] 영화 관객수 예측 모델 (4) time, dir_prev_num, num_actor, dir_prev_bfnum을 feature값으로 사용하여 모델을 학습하였는데 이번에는 genre까지 feature에 추가하여 모델을 만들겠다. from sklearn import preprocessing le = preprocessing.LabelEncoder() train['genre'] = le.fit_transform(train['genre']) feature로 사용하기 위해서는 genre가 숫자로 표현되어야 한다. 따라서 preprocessing을 사용하여 각각의 genre들을 고유한 값으로 변환시 겨서 적용해준다. print(train.tail(3)) title distributor genre release_time time screenin..
[Machine Learning] 영화 관객수 예측 모델 (3) KFold 교차 검증을 통해서 기본 모델에서 성능 향상을 해보겠다. KFold 교차 검증은 K개의 fold를 만들어서 학습과 검증을 하는 방법을 말한다. KFold 교차 검증의 이점은 총 데이터 개수가 적은 데이터 셋에 대하여 정확도를 향상할 수 있다는 것에 있다. 다음은 5개의 fold를 만들어서 교차 과정이 진행되는 과정을 나타낸 것이다. 파란색은 train 데이터, 초록색은 test 데이터이다. 위의 그림처럼 5번의 학습과 검증을 진행한 모델들을 저장하여 예측값들의 평균을 구하면 한번 학습된 모델보다 더 좋은 성능을 기대할 수 있다. from sklearn.model_selection import KFold k_fold = KFold(n_splits=5, shuffle=True, random_sta..

728x90