본문 바로가기

분류 전체보기114

머신러닝 - 엘라스틱넷(ElasticNet) 회귀 엘라스틱넷(ElasticNet) 회귀 이전 실습을 통해 라쏘 회귀와 릿지 회귀에 대해 알아보았습니다. 이전 실습에서 그래프를 통해 확인한 바와 같이 라쏘(L1 정규화) 회귀는 너무 많은 βi를 0으로 만들고, 릿지(L2 정규화) 회귀는 βi를 완전히 0으로 만들지는 않기 때문에 여전히 모델의 복잡성이 높습니다. 따라서, 이 L1, L2 정규화를 동시에 사용하여 두 회귀의 장점을 가진 회귀인 엘라스틱넷 회귀가 등장하게 된 것입니다. 엘라스틱 넷 회귀는 L1 ,L2 정규화를 반영한 비율을 설정할 수 있기 때문에 결과를 확인해가며 자유롭게 비율을 조정해 높은 예측 성능을 가진 모델을 만들어보세요. 엘라스틱넷 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import Ela.. 2022. 5. 23.
머신러닝 - 릿지(Ridge), 라쏘(Lasso) 회귀 릿지(Ridge), 라쏘(Lasso) 회귀 정규화 방법을 적용한 총 3가지(릿지, 라쏘, 엘라스틱 넷) 과적합 방지 모델 중 먼저 릿지(Ridge), 라쏘(Lasso) 회귀에 대해 알아보겠습니다. 사이킷런에 구현된 릿지 회귀와 라쏘 회귀를 이용하여 데이터를 학습시키고, βi 들의 크기를 확인해보겠습니다. 사이킷런 데이터의 변수 이름을 불러오기 위한 방법 load_boston().feature_names : boston 데이터의 변수 이름을 반환합니다. 릿지(Ridge), 라쏘(Lasso) 회귀를 위한 사이킷런 라이브러리/함수 from sklearn.linear_model import Ridge : 사이킷런에 저장된 릿지 회귀를 불러옵니다. Ridge(alpha): 릿지 회귀를 정의합니다. alpha: 기.. 2022. 5. 23.
머신러닝 - 과적합 방지 기법 - 교차 검증 과적합 방지 기법 - 교차 검증 과적합을 방지하기 위해서 어떠한 방식을 사용하여야 할 지에 대해 실습을 통해 알아보도록 하겠습니다. 교차 검증(cross validation) 은 과적합 방지를 위해 데이터를 분리하는 방법입니다. 기존 실습 문제들에서 학습용 데이터와 테스트용 데이터로 분리하는 방법을 적용하였는데, 이번 실습에서는 테스트 뿐만 아니라 검증용(Validation) 데이터를 활용하여 모델 결과를 평가해보겠습니다. 일반적으로 교차 검증에서 가장 많이 사용되는 것이 바로 k-fold 교차 검증입니다. k-fold 교차 검증은 아래와 같이 학습용 데이터를 계속 변경하며 모델을 훈련시키는 방법입니다. k-fold 교차 검증은 다음과 같은 순서로 진행됩니다. 데이터를 train, test 데이터로 분할.. 2022. 5. 23.
머신러닝 - 다항 회귀 모델 구현하기 다항 회귀 모델 구현하기 다항 회귀는 Y를 X에 대한 임의의 다항 함수로 모델링하는 선형 회귀를 의미합니다. 다항 회귀는 먼저 입력 데이터 X에 대한 전처리를 진행해준 후 다중 선형 회귀를 적용함으로써 구현됩니다. 사이킷런을 이용하면 입력 데이터에 대한 변환(전처리) 을 편리하게 진행할 수 있습니다. 따라서 이번 시간에는 사이킷런을 활용하여 다항 회귀를 구현해보겠습니다. 다항 회귀를 위한 사이킷런 함수/라이브러리 PolynomialFeatures(degree, include_bias): Polynomial 객체를 생성합니다. degree: 만들어줄 다항식의 차수를 의미합니다. include_bias : 편향 변수의 추가 여부를 설정합니다.(True/False) True로 설정하게 되면, 해당 다항식의 모.. 2022. 5. 23.
머신러닝 - 다중 선형 회귀 모델 구현하기 다중 선형 회귀 모델 구현하기 다중 선형 회귀는 입력값이 1개일 경우 적용하는 단순 선형 회귀 알고리즘과 달리 입력값 X가 여러 개일 때 사용할 수 있는 회귀 알고리즘입니다. 다중 선형 회귀 또한 사이킷런에 구현되어 있는 라이브러리를 활용하여 간단하게 모델을 구현해보겠습니다. 단순 선형 회귀 실습을 통해 LinearRegression 클래스를 정의하고 사용한 것을 기억하시나요? 사실 위 클래스는 다중 선형 회귀에서도 사용이 가능합니다. 사이킷런에서는 선형 회귀 라는 이름으로 단순/다중 선형 회귀의 구분 없이 동일한 모듈을 활용할 수 있습니다. 사이킷런에 저장된 데이터를 불러오고, 불러온 데이터를 다중 선형 회귀 모델을 사용해 예측을 진행해보도록 하겠습니다. 우리가 사용할 데이터는 1978년에 발표된 ‘보.. 2022. 5. 23.
머신러닝 - 회귀(Regression) 사이킷런 단순 선형 회귀 모델 구현하기 입력값 X가 1개인 경우 적용하는 회귀 알고리즘인 단순 선형 회귀 모델에 대해 알아보았습니다. 실습 1에서와 같이 회귀 모델의 함수식 Y=β0+β1X을 이용하여 알고리즘을 직접 구현할 수도 있지만, 사이킷런(scikit-learn) 이라고 하는 머신러닝 라이브러리에 구현되어 있는 모델을 불러오는 것만으로도 쉽게 단순 선형 회귀 알고리즘을 사용할 수 있습니다. 사이킷런은 머신러닝 모델 구현 뿐만 아니라 예시 데이터 셋, 데이터 전처리, 세부 조정, 모델 평가 등과 같은 유용한 기능들을 제공합니다. 이번 실습에서는 사이킷런을 활용하여 단순 선형 회귀를 구현하는 방법을 익혀보도록 하겠습니다. 데이터 준비를 위한 사이킷런 함수/라이브러리 from sklearn.model_selec.. 2022. 5. 23.
머신러닝 - 회귀(Regression) 회귀 분석(Regression) 알고리즘 구현하기 이번 실습에서는 간단한 파이썬 코드 작성을 통해 회귀 분석 알고리즘을 구현해보도록 하겠습니다. 이론 강의를 통해 회귀 모델은 다음과 같이 표현한다고 하였습니다. Y=β0+β1X 여기서 적절한 β0​ 와 β1​ 를 찾기 위해서는 데이터의 실제 값과 모델이 예측하는 값의 차이를 최소한으로 하는 선을 찾아야 합니다. 차이를 최소한으로 하는 선을 찾는 회귀 분석의 절차는 다음과 같습니다. 회귀 분석의 절차 X라는 값이 입력되면 Y=β0+β1X라는 계산식을 통해 값을 산출하는 예측 함수를 정의합니다. 실제 값 y와 예측 함수를 통해 도출된 예측값 pred_y간의 차이를 계산합니다. 계산한 차이에 기반하여 β0와 β1를 업데이트하는 규칙을 정의하고 이를 바탕으로 β.. 2022. 5. 23.
가상 PC 서버 window에서 OS 시간 및 언어 설정 기본적으로 AWS 서버 PC는 영문판 OS에 시간설정도 한국에 맞지 않게 설치된다. 그래서 결국 한국 주식 시간에 맞게 변경하고, windows언어도 한국어로 바꿔 주는 것이 좋다. 언어를 한국어로 바꿔주지 않으면, 한국어로 표시되는 프로그램들의 글씨를 알아 볼 수가 없다. 나의 경우에는 주식 자동매수 프로그램에서 사용하는, 대신 증권 CREON프로그램에서 무슨 말을 하는지 글씨가 깨져서 출력되서 알 수가 없다. 아래 캡쳐는 이미 나의 언어, 시간설정은 바꿔놨는데, 여러분에서 설정 방법 설명을 위해서 첨부하였다. 동일한 설정인 것들이 반복되는데, 한 곳에서만 설정하면, 제대로 적용이 안되는 경우도 있다. 실재로 한국어와 시간이 바뀔때까지 관련된 설정을 계속 바꿔가면서 확인해봐야한다. windows 제어판.. 2022. 4. 3.
Upbit 코인 자동 매수 프로그램 만들기 시작하기 암호화폐는 365일 24시간 거래가 이루어지기 때문에, 비트코인 등을 적절한 타이밍에 매수, 매도하기는 쉽지 않다. 특히, 낮에 업무중일 때와 밤에 잘때 큰 가격 변동이 나타나는 경우가 많기 때문이다. 그래서, 비트코인 등 암호화폐를 자동매수 매도하는 프로그램을 이용해서, 거래하는 것이 신경쓰지 않고 암호화폐를 투자할 수 있는 좋은 방안이 된다. 매수매도 알고리즘을 실행시켜놓고, 잊어버리고 살다보면, 계좌에 평가금이 엄청나게 늘어나 있는 것을 기대하면서 ㅎㅎ 암호화폐 거래소는 국내최대 거래소이며, 거래 수수료도 적고, python API가 잘 제공되어 있는 Upbit거래소를 이용하기로 한다. 먼저, python code에서 매수/매도 명령을 가능하게 하려면, Open API key를 발급받아야한다. Up.. 2022. 3. 27.
대신증권 주식 자동매수 프로그램을 PC에서 자동으로 실행되게 만들기 대신증권의 API가 파이썬 코드로 주식 자동매수하기가 좋아서, 대신증권으로 주식자동매수 프로그램을 진행하기로 했다. 먼저 가상 머신 PC 환경을 만들어야 한다. 아래 내가 적은 블로그 글대로 한다. https://skillmemory.tistory.com/entry/AWS%EB%A1%9C-%EA%B0%80%EC%83%81-PC-%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B0 AWS로 가상 PC 서버 만들기 컴퓨터에서 계속 실행되어야 하는 프로그램을 구동하기 위해서는, 로컬 컴퓨터를 계속 몇날 몇일 켜놓는 것은 매우 비효율적이다. 전기세, 소음, 언제 누가 끌지 모르는 불안감... 나는 주식이나 skillmemory.tistory.com https://skillmemor.. 2022. 3. 27.
미래에셋 HTS 주식 타사 이체 출고 하는 법 공모주를 할때 상황에 따라서 가족이나 자신이 잘 쓰지않는 증권사를 통해서, 공모주를 신청하고 할당받는 경우가 많다. 그리고, 상장일에 해당 공모주식이 있는 증권사에서, 자신이 잘 사용하는 증권사로 주식을 이동해서 다른 주식과 함께 관리하려고 하는 사람은 주식을 '타사 출고' 해야한다. 미래에셋 등 대부분의 증권사에서 타사출고는 HTS에서만 가능하다. 그래서, 미래에셋의 HTS 인 KAIROS를 설치해야한다. HTS화면이 나오면, 메뉴에서 온라인센터 - 은행이체/대체 - 0991 타사이체출고 로 들어간다. 옛날에 공모한 SK바이오사이언스 타사이체를 한 경우, 아래 화면과 같이 나온다. 동일명의(나)계좌로 보낼지, 타명의 계좌로 보낼지 선택하고, 상대회사에 타사출고할 증권사를 선택하고 계좌번호를 입력한다. .. 2022. 3. 27.
AWS로 가상 PC 서버 만들기 컴퓨터에서 계속 실행되어야 하는 프로그램을 구동하기 위해서는, 로컬 컴퓨터를 계속 몇날 몇일 켜놓는 것은 매우 비효율적이다. 전기세, 소음, 언제 누가 끌지 모르는 불안감... 나는 주식이나 암호화폐를 자동매수하는 프로그램을 돌리기 위함이였다. 그래서 대기업의 서버가 나의 로컬PC처럼 동작했으면, 좋겠다는 바람이 있었다. 내가 확인해본 결과 Naver cloud의 가상 PC는 사용의 용이성이 떨어지고, 가상 PC의 성능에 비해서 월 이용가격이 너무 비싸서 Pass했다. 아마존 AWS는 계정 생성 후 첫 1년동안은 대부분의 서비스를, 기본적으로 체험할 수 있는 수준의 성능을 무료로 사용할 수 있다. 가상 서버 PC는 EC2와 Lightsail서비스가 있는데, 여기서는 EC2기준으로 설명하겠다. 그래서, 여.. 2022. 3. 26.