본문 바로가기
카테고리 없음

230321_DB복습

by 보랏 2023. 3. 21.

안녕하세요. 보랏입니다. 

 

오늘은 어제에 이은 Docker에서 주피터 서버 연결, mysql 연결을 하였고,

머신러닝 사이킷런을 배웠습니다.

 

복습 바로 시작하겠습니다. 

 

 

1. Docker를 이용한 jupyter notebook 사용

### docker를 이용해 jupyter notebook 이미지 파일 가져오기
docker pull jupyter/datascience-notebook

### docker의 현재 파일 모두 보여주기
docker ps -a

### docker mysql 설치하기
docker pull mysql 

### 기타 명령어
docker start [컨테이너 이름] : 컨테이너 실행
docker stop [컨테이너 이름] : 컨테이너 종료
docker rm [컨테이너 이름] : 컨테이너 삭제
  • 이제 docker에서 jupyter notebook을 사용할 수 있는 이미지 파일을 모두 다운받고, mysql DB까지 설치하였습니다. 이제 docker를 통해 만든 jupyter notebook 주소를 사용하여 로그인하면 됩니다. 
docker run -it --rm -p 10000:8888 --name encore_sci jupyter/datascience-notebook

  • 로컬서버에서 jupyter파일을 확인할 수 있도록 c드라이브에 docker_jupyter 폴더를 생성 후 연결할 수 있도록 하겠습니다. 
### 주피터 노트북 폴더 연결
docker run -it --rm -p 10000:8888 -v C:\docker_jupyter:/home/jovyan/work --name encore_sci jupyter/datascience-notebook

 

  • DB설치 
    • workspace에 mysql폴더에 data폴더에 db(강사님 제공 data파일)활용하여서 mysql과 연결하였습니다.
docker run -d -p 4000:3306 -e MYSQL_ROOT_PASSWORD=password --name encore_mysql -v c:/workspace/mysql/data:/var/lib/mysql mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker run -d --rm -p 10000:8888 -v C:\workspace\docker_jupyter:/home/jovyan/work --link encore_mysql:mysql --name encore_sci5 jupyter/datascience-notebook

 

  • 이후 mysql에 접속하여 port : 4000, ip주소 : 127.0.0.1, name : root, 비밀번호 : 1234로 설정하여 실행하면 docker와 db가 연결됩니다. 

 

 

 

2. 머신러닝 (Scikit-Learn) 

  • 사이킷런에서 제공하는 데이터 셋은 특성행렬, 타겟벡터로 Numpy의 ndarray, Pandas, scipy를 이용해 표현
  • 특성행렬은 입력 데이터를 의미하며 [n_samples, n_features] 형태의 2차원 배열구조를 사용
  • 타겟벡터는 입력 데이터의 라벨(정답)을 의미하며 [n_samples]형태의 1차원 배열구조를 사용 
    • 지도 학습 : 입력과 타겟을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는 데 활용하는 학습
    • 비지도 학습 : 타겟 데이터가 없으며 무엇을 예측하는 것이 아니라 입력 데이터에서 어떤 특징을 찾는 것이 주 목적
    • 훈련 세트(Train set) : 모델을 훈련할 때 사용하는 데이터 보통 70~80%로 테스트 세트를 제외한 모든 데이터를 사용
    • 테스트 세트(Test set)  : 전체 데이터에서 20~30%를 테스트 세트로 사용
    • fit() : 사이킷런 모델을 훈련할 때 사용하는 메서드로, 처음 두 매개변수로 훈련에 사용할 특성과 정답 데이터를 전달
    • predict() : 사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드, 특성 데이터 하나만 매개변수로 받음
    • score() : 훈련된 사이킷런 모델의 성능을 측정
### 전달되는 리스트와 배열을 비율에 맞게 훈련세트와 테스트세트로 분리 
from sklearn.model_selection import train_test_split

### 사용방법
X_train, X_test, y_train, y_test = train_test_split(data, target, random_state = 42) # random_state : 랜덤 시드
  • 지도 학습 알고리즘 종류
    • 분류모델(Classification) : 샘플을 몇 개의 클래스 중 하나로 분류하는 문제
    • 분류모델 알고리즘 종류 :  SGD Classifier, KNeighborsClassifier, LinearSVC, NaiveBayes, SVC, Kernel approximation, EnsembleClassifiers
    • 회귀모델(Regression) : 임의의 어떤 숫자를 예측 및 두 변수 사이의 상관관계를 분석하는 방법
    • 회귀모델 알고리즘 종류 : SGD Regressor, Lasso, ElasticNet, RidgeRegression, SVR(kernel='linear'), SVR(kernel='rbf'), EnsembelRegressor

 

 

 

제가 오늘 공부한 자료를 깜빡하고 놓고와서 오늘은 여기까지 작성하고

내일 추가적으로 작성하도록 하겠습니다...

 

감사합니다.