범주형 데이터 인코딩하기 머신러닝 모델은 글자를 인식하지 못합니다. 이 사실만으로도 인코딩을 반드시 해야한다는 걸 이해하실 수 있을겁니다. 컴퓨터는 사람처럼 소통하는 게 아니기 때문에 이것이 범주형 데이터라는 것을 알려주어야 합니다. 그런 의미에서 판다스에서 타입이 object로 분류되는 데이터는 인코딩을 해주어야 합니다. 인코딩 방법 데이터 인코딩하는 방법은 굉장히 많습니다. 그 중에서 주요한 방법인 레이블 인코딩, 원핫인코딩, 더미 변수, 빈도 인코딩, 순서 인코딩에 대해 간단히 정리합니다. 레이블 인코딩 (Label Encoding) 개념: 각 범주에 고유한 정수를 할당하는 방식입니다. 카테고리가 확실할 때 사용합니다. 문자를 정수로 반환하는 역할만 합니다. 원 데이터의 손실이 없습니다. 예시: f..
숫자형 데이터 스케일링하기 머신러닝이나 딥러닝으로 빅데이터 분석을 하기전에 필수로 해야하는 것이 데이터값 맞추는 작업입니다. 숫자형 데이터인 경우 숫자가 중구난방이 되면 안되기 모델 정확도가 많이 떨어지기 때문에 컬러마다 범위가 같게 숫자로 맞춰주어야 합니다. 모두 비율로서 맞춰서 모델 예측력을 높입니다. 스케일링 방법 스케일링 방법에는 Min-Max Scaling, Standard Scaling, Robust Scaling이 주요한 방법입니다. Min-Max Scaling 개념: 데이터의 범위를 최솟값을 0, 최댓값을 1로 변환하여 모든 데이터값이 0~1사이의 값으로 바꿔줍니다. 수식: $$X_{\text{scaled}} = \frac{X - X_{\text{min}}}{X_{\text{max}} - ..
파이썬으로 선형회귀 모델 만들기 이전 포스팅에서 선형회귀에 대한 이론적인 내용을 했었는데 파이썬으로 구현할 때 본의아니게 많이 어렵게 코딩을 한 것 같습니다. 그래서 scikit-learn 과 statsmodel을 이용해 선형회귀를 구현하는 방법을 포스팅합니다. 이미 되어있는 걸 가져다 쓰면 되기 때문에 간단합니다. scikit-learn 을 이용한 방법 numpy와 scikit-learn을 이용한 방법입니다. 선형회귀 모델에 데이터를 훈련해서 회귀계수를 찾아냅니다. 먼저 데이터를 가져옵니다. 예제이므로 간단하게 만들었습니다. 실제 데이터를 가져온다면 입력데이터와 타킷데이터를 구분합니다. import numpy as np from sklearn.linear_model import LinearRegress..
인공지능은 현대 사회에서 가장 빠르게 발전하는 기술 중 하나로, 우리의 생활과 업무에 혁명적인 변화를 가져오고 있습니다. 그리고 그 핵심적인 역할을 맡고 있는 것이 바로 "머신러닝(Machine Learning)"입니다. 머신러닝은 알고리즘을 구축하는 컴퓨터 과학의 하위 분야로 최근에는 인공지능의 핵심기술로 자리잡고 있습니다. 요즘은 머신러닝으로 할 수 없는 것들도 많아지고 있는 추세지만 기본적인 베이스가 되고 있는건 변함 없습니다. 컴퓨터가 패턴을 학습하여 스스로 데이터분석과 문제를 해결하는 능력을 갖추게 된다면 얼마나 편해질까요? 데이터를 컴퓨터에게 던져주면 알아서 분석도 해주고 ppt도 만들어주고 문서도 만들어줄겁니다. 여태까지 컴퓨터로 했던 모든 것들은 이제 말이나 타이핑을 통해서 해달라고 요청하..
요즘은 어떤지 모르겠지만 저는 개인적으로 자연어 맨처음 시작할 때 공부용으로 쓰던 NLTK입니다. 한글지원은 약하고 주로 영어를 사용합니다. 이미 생성AI가 나오는 판국에 이제와서 무슨 자연어 처리일까 싶겠지만 인공지능은 데이터기반으로 하기 때문에 내가 데이터만 잘 가져온다면 어디서든 새로운 걸 만들어낼 수 있습니다. 모두가 구글 될게 아니기 때문에 자신의 주변에서 필요한 부분이 분명 있을테니 영감을 얻는 도구로써 한번 체험해보시길 바랍니다. NLTK 소개 NLTK(Natural Language Toolkit)은 파이썬에서 자연어 처리를 수행하기 위한 라이브러리입니다. 텍스트 데이터 분석, 토큰화, 형태소 분석, 품사 태깅, 문장 구문 분석 등 다양한 자연어 처리 작업을 지원하며, 학술 연구부터 실제 응..
분류 문제 실습용으로 가장 좋은 iris dataset 가져오는 방법입니다. 여러 방법이 있지만 머신러닝에서 가장 선호하는 건 sklearn을 이용한 방법이 아닐까 싶습니다. 주요 데이터셋은 sklearn에 내장되어있기 때문에 손쉽게 데이터를 받을 수 있습니다. Iris 데이터셋 가져오기 다음과 같이 합니다. from sklearn.datasets import load_iris import numpy as np import pandas as pd Iris = load_iris() Iris Iris를 불러보면 다음과 같이 딕셔너리로 구성되어있습니다. 밑에 가보면 데이터 정보도 같이 줍니다. 딕셔너리 그대로 머신러닝을 돌리기에는 무리가 있습니다. 데이터 정보를 토대로 데이터프레임에 옮겨보겠습니다. 'data..
머신러닝은 지도학습, 비지도 학습, 강화학습 등 다양한 모델이 있습니다. 학습방법에 따라 성능에 대한 고찰도 약간씩 달라집니다. 이번 포스팅에서는 지도학습 모델에서 자주 쓰는 평가방식에 대해 정리하려 합니다. 범주형 모델 평가 범주형 모델은 분류를 목적으로 만든 모델입니다. 성능 또한 잘 분류했는지를 확인합니다. 평가를 위해서 혼동행렬(Confusion Matrix)를 이용하고 주로 F1_score나 ROC 곡선 점수로 평가를 합니다. 혼동행렬, ROC 곡선에 대한 개념에 대한 자세한 내용은 아래 포스팅에서 확인하시기 바랍니다. [머신러닝] 혼동행렬(Confusion matrix) [머신러닝] 혼동행렬(Confusion matrix) 이전 포스팅에서 MNIST에서 이진 분류기를 만들어 보았는데 글이 길어..
오라클을 쓸 경우 디비버(DBeaver)라는 SQL 편집기를 보통 씁니다. 근데 설치를 막 했거나 업데이트를 하면 비밀번호 만기가 있다고 비밀번호를 바꾸라고 합니다. 내가 언제 비밀번호를 했었나? 라는 생각이 문득 들었는데 뭔지도 모르니 일단 지켜보았는데 ... 2일 남았다고 하니 당황스럽더군요. 보안 때문에 비밀번호를 계속 바꾸라는 것은 이해하겠으나 저는 개인용으로 쓰는 거라 비밀번호를 굳이 바꿔가며 살 필요는 없습니다. 매번 비밀번호를 바꿔야하는 생각이 들어서 만기를 없앨 수 있는지 알아보았더니 역시나 있었습니다. 패스워드 기간 변경 디비버를 켠후 SQL 구문을 치면 테이블이 하나뜹니다. select resource_name,resource_type,limit from dba_profiles; 여기서..
모델링 모델링은 현실세계에서 있는 것들을 컴퓨터 앞에 가지고 와서 한눈에 보고 일처리할 필요성으로 만들어진 기법입니다. 현실세계의 복잡한 데이터를 일정한 표기법으로 규칙을 가지고 컴퓨터에 표기하는 작업이라 할 수 있습니다. 그렇기 때문에 체계적이고 명확해야 합니다. (명확화) 복잡한 세계에 있는 걸 가져와 다룰려면 단순해져야 합니다.(단순화) 그렇다고 현실세계의 특징을 아예 배제해서는 안되고 특징을 담되 컴퓨터에서 하나의 객체로 표현하는 작업이 되어야 합니다.(추상화) 모델링 특징 3가지 앞에서 언급한대로 모델링의 특징으로 3가지로 정리할 수 있습니다. 추상화 (모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현 (일정한 양식 표기법) 단순화 : 복잡한 현실세계 약속된 규약에 의해 제한된 표기법/..
파이토치 설치하는 방법입니다. 딥러닝을 구현하려면 텐서플로우랑 파이토치가 필요한데 텐서플로우는 이미 conda나 pip으로 간단하게 설치가 가능한데 파이토치는 그렇지 않습니다. 파이토치 홈페이지에서 설치파일을 받아야 합니다. 설치파일 받기 파이토치는 홈페이지에 가서 개발환경 버전에 맞는 설치파일을 가져와야 합니다. 기존에 있던 www.pytorch.org 는 보안과 안정성 때문에 좀 찝찝한 부분이 있어서 추천드리지 않고 파이토치 한국 사용자 모임 홈페이지에서 pytorch 설치를 진행하는 것을 추천합니다.아래 홈페이지로 가면 됩니다. https://pytorch.kr/get-started/locally/ 파이토치 한국 사용자 모임 (PyTorch Korea User Group) 파이토치 한국 사용자 모임..
MySQL 로그인 오류 유형에 대해 알려드립니다. 로그인 오류 유형은 복잡한 건 없고 비밀번호 때문에 생기는 문제입니다. 유형은 두가지인데 비밀번호가 없는 경우와 비밀번호가 있는데 틀린 경우입니다. 뭐 이렇게까지 하냐고 생각할 수 있는데 DB는 데이터를 모아놓은 곳입니다. 유출되지 말아야하는 정보들이 꽤나 많이 있는 곳이라 보안이 중요합니다. 그래서 MySQL에서는 비밀번호를 꼭 만들 것을 권고합니다. 따라서 비밀번호를 만들지 않았다면 만들지 않아서 오류가 뜰것이고 비밀번호가 틀렸다면 틀렸다고 오류가 뜰 겁니다. 유형 1) ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: NO) 사용자의 비밀번호가 없을 경우 나타나..
mysql 를 켤 때 다음과 같은 에러가 뜰 수 있습니다. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 이 문제의 원인은 세가지입니다. server가 socket 연결을 못한 경우 MySQL 서버가 실행되지 않은 경우 mysql.sock 시스템을 못 찾는 경우 정확히 어떤 문제인지는 하나씩 해봐야합니다. 어쨋든 큰 맥락은 service connection이 안되는 거니 mysql service를 재시작하는 게 무난한 방법입니다. (잘 안 되면 껐다켜보는것이 가장 빠른 방법입니다) 일반적으로 설치가 잘 되었고 크게 뭘 안 건드렸다면 1, 2번의 경우라고 생각하고 우..
DB 다룰 때 주로 mysql을 많이 쓰는데 리눅스 환경에서도 가능합니다. 가상머신을 이용해 우분투를 설치했거나 서버 리눅스에서는 큰 문제 없이 리눅스를 설치할 수 있는데 WSL로 우분투를 설치했다면 일반적인 우분투와는 약간 다른 환경이어서 일부 오류가 날 수 있습니다. wsl 기준으로 mysql 설치법을 알려드리겠습니다. mysql 설치 wsl 터미널 엽니다. ubuntu 패키지 업데이트를 합니다. sudo apt update mysql 설치합니다. sudo apt install mysql-server y를 누르면 설치가 시작됩니다. 설치가 완료되면 설치 확인할 겸 버전 정보 확인할 겸 다음을 입력해 mysql 버전확인을 합니다. mysql --version mysql 설정 및 구동 여기서부터가 WSL..
Mysql root 비밀번호 setup error Ubuntu에서 Mysql 설정을 위해 mysql_secure_installation을 시작하면 root 비밀번호를 설정하는 상황이 나옵니다. 비밀번호를 설정했더니 다음과 같은 에러가 뜹니다. ... Failed! error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters. sec..
mysql 비밀번호 설정하려고 하면 잘못하면 어쩌나 겁이 날텐데 어렵지 않습니다. 간단하게 비밀번호를 바꿀 수 있습니다. 특히 WSL로 리눅스를 설치한 곳에 mysql 설치를 하면 root 비밀번호 설정이 안 되어 있어서 mysql-server 설정시 오류가 발생합니다. root 비밀번호를 설정하면 되는데 아래와 같은 방법으로 합니다. mysql root비밀번호 변경하기 mysql root 비밀번호 설정방법입니다. 먼저 리눅스 터미널 창에서 mysql에 들어갑니다. sudo service mysql restart sudo mysql -u root -p Eneter password: 라는 창이 뜨는데 Enter를 쳐서 들어갑니다. 비밀번호를 바꾸기 위해서 아래 명령어를 입력합니다. mysql> ALTER ..