728x90
  1. ES6 코드를 ES5 코드로 변환 해 주는 사이트
    https://babeljs.io/repl
  2. ES6_TEST directory 생성
    npm init 실행
  3. babel 요소 설치
    npm install --save-dev @babel/core @babel/cli @babel/preset-env core-js
  4. npm 명령어
    1) npm init : 프로젝트 초기화
    2) npm install : package.json의 패키지 설치
    3) npm install --save [패키지명] : 패키지를 프로젝트 의존성으로 추가
    4) npm install --save-dev [패키지명] : 패키지를 프로젝트 개발 의존성 수준으로 추가
    5) npm install --global [패키지명] : 패키지를 전역 수준으로 추가
    6) npm update --save : 프로젝트 패키지 업데이트
    7) npm run [스크립트명] : package.json의 스크립트 명령 실행
    8) npm uninstall --save [패키지명] : 패키지 삭제
    9) npm cache clean : 캐시 삭제
728x90
728x90
  1. 호스트명 확인
    mycomputer:~$hostname
    mycomputer

  2. 호스트명 변경
    mycomputer:~$sudo hostnamectl set-hostname ubuntudev
    [sudo] mycomputer 암호 :

  3. 터미널 종료 혹은 시스템 재부팅 후

  4. 호스트명 확인
    호스트명이 변경 된 것을 확인 할 수 있다.
    ubuntudev:~$hostname
    ubuntudev

728x90

'프로그래밍 > 우분투' 카테고리의 다른 글

우분투 설치 후 root 비밀번호 변경  (0) 2025.05.31
mysql 백업 및 복원 방법  (0) 2022.07.13
jenkins 셋팅  (0) 2022.07.06
728x90

mycomputer:~바탕화면$sudo password root
[sudo]mycomputer 암호:
새 암호 :
새 암호 재입력 :

mycomputer:~바탕화면$su
암호 :
root@mycomputer:/home/mycomputer/바탕화면#

루트로 변경 되면 $ 표시가 #으로 변경 됨.

728x90

'프로그래밍 > 우분투' 카테고리의 다른 글

우분투 호스트명 변경  (0) 2025.05.31
mysql 백업 및 복원 방법  (0) 2022.07.13
jenkins 셋팅  (0) 2022.07.06
728x90
  1. 리액트 프로젝트 생성
    npx create-react-app [생성할 리액트명]

  2. VSCode 설치
    https://code.visualstudio.com/Download

  3. 프로젝트 내에서 vscode 실행
    d:\work\frontend\testapp>code .

  4. VSCode 터미널에서 리액트 프로젝트 실행
    npm start

  5. tailwind CSS 설치
    npm install -D tailwindcss@3.4.17 postcss autoprefixer

npx tailwindcss init -P

728x90
728x90

1. 윈도 터미널을 실행 할 때 관리자 권한으로 실행한다.

2. 터미널(관리자) 실행 후 커맨드 창에 ExecutionPolicy 를 입력한다.

Restricted로 출력 되면 기본 실행 정책으로 개별 명령을 허용하지만 스크립트를 실행하지 않는다는 의미이다.

3. 커맨드 창에 Set-ExecutionPolicy Unrestricted 혹은 Set-ExecutionPolicy RemoteSigned를 입력 한다.

4. 커맨드 창에 ExecutionPolicy를 입력 한다. 

1) Unrestricted 

가. 서명되지 않은 스크립트를 실행할 수 있음

나. 악의적인 스크립트를 실행할 위험이 있음

2) RemoteSigned

가. 스크립트를 실행 가능

나. 이미 실행한 스크립트와 로컬 컴퓨터에 작성한 스크립트에는 디지털 서명이 필요 없음

 

728x90

'프로그래밍 > 정보보안' 카테고리의 다른 글

Apache Log4j 보안 업데이트 권고  (0) 2022.09.01
HTTP trace 제거  (0) 2019.04.10
개인정보보호 보안 가이드 - 행정자치부  (0) 2015.04.23
728x90
# 필요한 라이브러리 설치
!pip install pykrx tensorflow matplotlib pandas numpy scikit-learn

# 라이브러리 임포트
from pykrx import stock
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from datetime import datetime, timedelta

# 1. LG전자의 OHLCV와 펀더멘털 지표 가져오기
def get_lg_data():
    ticker = "066570"  # LG전자 종목코드
    today = datetime.today().strftime("%Y%m%d")
    one_year_ago = (datetime.today() - timedelta(days=365)).strftime("%Y%m%d")

    # OHLCV 데이터 가져오기
    ohlcv = stock.get_market_ohlcv_by_date(one_year_ago, today, ticker)

    # 펀더멘털 데이터 가져오기
    fundamentals = stock.get_market_fundamental_by_date(one_year_ago, today, ticker)
    
    # OHLCV와 펀더멘털 데이터를 합치기
    data = pd.concat([ohlcv, fundamentals], axis=1)

    return data

data = get_lg_data()

# 2. 데이터 전처리 (종가와 PER을 입력으로 사용)
def preprocess_data(data):
    df = data[['종가', 'PER']].dropna()  # 종가와 PER만 사용

    # MinMaxScaler로 데이터 정규화
    scaler = MinMaxScaler()
    scaled_data = scaler.fit_transform(df)

    # LSTM 입력에 맞게 시퀀스 데이터 만들기
    X, y = [], []
    seq_length = 10  # 10일 동안의 데이터를 사용하여 다음날을 예측

    for i in range(len(scaled_data) - seq_length):
        X.append(scaled_data[i:i+seq_length])
        y.append(scaled_data[i+seq_length, 0])  # 종가를 예측

    X = np.array(X)
    y = np.array(y)

    return X, y, scaler

X, y, scaler = preprocess_data(data)

# 3. LSTM 모델 생성 및 학습
def create_lstm_model():
    model = Sequential()
    model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
    model.add(Dropout(0.2))
    model.add(LSTM(units=50))
    model.add(Dropout(0.2))
    model.add(Dense(1))  # 종가 예측을 위한 출력층

    model.compile(optimizer='adam', loss='mean_squared_error')
    return model

model = create_lstm_model()

# 모델 학습
model.fit(X, y, epochs=20, batch_size=32)

# 4. 주가 예측 및 시각화
def predict_future_prices(model, data, scaler, days=7):
    # 최근 10일간의 데이터를 가져와서 예측에 사용
    recent_data = data[-10:]
    scaled_recent_data = scaler.transform(recent_data[['종가', 'PER']].values)

    # 예측할 일주일 동안의 데이터
    predictions = []
    for _ in range(days):
        input_data = scaled_recent_data[-10:].reshape(1, 10, 2)
        predicted_price = model.predict(input_data)
        predictions.append(predicted_price[0, 0])

        # 새로운 예측값을 기존 데이터에 추가
        scaled_recent_data = np.vstack([scaled_recent_data, [[predicted_price[0, 0], scaled_recent_data[-1, 1]]]])

    # 예측된 종가 값을 스케일링 복원
    predicted_prices = scaler.inverse_transform(np.array(predictions).reshape(-1, 1))

    return predicted_prices

predicted_prices = predict_future_prices(model, data, scaler)

# 실제 종가와 예측 종가 시각화
def plot_predictions(data, predicted_prices):
    plt.figure(figsize=(10,6))

    # 실제 데이터 시각화
    plt.plot(data.index, data['종가'], label='Actual Prices', color='blue')

    # 예측 데이터 시각화
    future_dates = pd.date_range(start=data.index[-1] + timedelta(days=1), periods=len(predicted_prices))
    plt.plot(future_dates, predicted_prices, label='Predicted Prices', linestyle='--', color='orange')

    plt.title("LG Electronics Stock Price Prediction")
    plt.xlabel("Date")
    plt.ylabel("Price")
    plt.legend()
    plt.grid()
    plt.show()

plot_predictions(data, predicted_prices)

 

  • LG전자의 데이터 가져오기: get_lg_data() 함수에서 LG전자의 종목 코드를 사용하여 오늘부터 1년 동안의 OHLCV 및 펀더멘털 지표를 가져옵니다.
  • 데이터 전처리: preprocess_data() 함수에서 종가와 PER를 사용하여 LSTM 모델의 입력 데이터로 변환합니다. 데이터를 정규화하고, 시퀀스 데이터를 생성합니다.
  • LSTM 모델 생성: create_lstm_model() 함수에서 LSTM 모델을 구성합니다. 여기서는 두 개의 LSTM 레이어와 드롭아웃 레이어를 추가하여 과적합을 방지합니다.
  • 모델 학습: LSTM 모델을 학습시킵니다.
  • 주가 예측 및 시각화: predict_future_prices() 함수에서 모델을 사용하여 향후 7일 간의 주가를 예측합니다. plot_predictions() 함수에서 실제 주가와 예측된 주가를 시각화합니다.

 

 

 

 

728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

주식 예측 모델  (2) 2024.10.10
주식거래 시스템을 위한 준비  (0) 2024.10.06
728x90

`pykrx` 모듈을 활용하여 삼성전자의 OHLCV 데이터를 가져오고, LSTM 모델을 통해 주가를 예측하는 코드를 아래와 같이 작성할 수 있습니다. 

1. `pykrx` 모듈로 OHLCV 데이터 및 펀더멘털 지표를 가져오기
2. 종가와 PER를 입력으로 LSTM 모델 구성
3. 모델 학습 및 주가 예측
4. 결과 시각화

먼저, 코드를 구성해봅니다.

```python
# 필요한 라이브러리 설치
!pip install pykrx tensorflow matplotlib pandas numpy scikit-learn

# 라이브러리 임포트
from pykrx import stock
from pykrx import bond
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from datetime import datetime, timedelta

# 1. 삼성전자의 OHLCV와 펀더멘털 지표 가져오기
def get_samsung_data():
    ticker = "005930"  # 삼성전자 종목코드
    today = datetime.today().strftime("%Y%m%d")
    one_year_ago = (datetime.today() - timedelta(days=365)).strftime("%Y%m%d")

    # OHLCV 데이터 가져오기
    ohlcv = stock.get_market_ohlcv_by_date(one_year_ago, today, ticker)

    # 펀더멘털 데이터 가져오기
    fundamentals = stock.get_market_fundamental_by_date(one_year_ago, today, ticker)
    
    # OHLCV와 펀더멘털 데이터를 합치기
    data = pd.concat([ohlcv, fundamentals], axis=1)

    return data

data = get_samsung_data()

# 2. 데이터 전처리 (종가와 PER을 입력으로 사용)
def preprocess_data(data):
    df = data[['종가', 'PER']].dropna()  # 종가와 PER만 사용

    # MinMaxScaler로 데이터 정규화
    scaler = MinMaxScaler()
    scaled_data = scaler.fit_transform(df)

    # LSTM 입력에 맞게 시퀀스 데이터 만들기
    X, y = [], []
    seq_length = 10  # 10일 동안의 데이터를 사용하여 다음날을 예측

    for i in range(len(scaled_data) - seq_length):
        X.append(scaled_data[i:i+seq_length])
        y.append(scaled_data[i+seq_length, 0])  # 종가를 예측

    X = np.array(X)
    y = np.array(y)

    return X, y, scaler

X, y, scaler = preprocess_data(data)

# 3. LSTM 모델 생성 및 학습
def create_lstm_model():
    model = Sequential()
    model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
    model.add(Dropout(0.2))
    model.add(LSTM(units=50))
    model.add(Dropout(0.2))
    model.add(Dense(1))  # 종가 예측을 위한 출력층

    model.compile(optimizer='adam', loss='mean_squared_error')
    return model

model = create_lstm_model()

# 모델 학습
model.fit(X, y, epochs=20, batch_size=32)

# 4. 주가 예측 및 시각화
def predict_future_prices(model, data, scaler, days=7):
    # 최근 10일간의 데이터를 가져와서 예측에 사용
    recent_data = data[-10:]
    scaled_recent_data = scaler.transform(recent_data[['종가', 'PER']].values)

    # 예측할 일주일 동안의 데이터
    predictions = []
    for _ in range(days):
        input_data = scaled_recent_data[-10:].reshape(1, 10, 2)
        predicted_price = model.predict(input_data)
        predictions.append(predicted_price[0, 0])

        # 새로운 예측값을 기존 데이터에 추가
        scaled_recent_data = np.vstack([scaled_recent_data, [[predicted_price[0, 0], scaled_recent_data[-1, 1]]]])

    # 예측된 종가 값을 스케일링 복원
    predicted_prices = scaler.inverse_transform(np.array(predictions).reshape(-1, 1))

    return predicted_prices

predicted_prices = predict_future_prices(model, data, scaler)

# 실제 종가와 예측 종가 시각화
def plot_predictions(data, predicted_prices):
    plt.figure(figsize=(10,6))

    # 실제 데이터 시각화
    plt.plot(data.index, data['종가'], label='Actual Prices')

    # 예측 데이터 시각화
    future_dates = pd.date_range(start=data.index[-1], periods=len(predicted_prices) + 1, closed='right')
    plt.plot(future_dates, predicted_prices, label='Predicted Prices', linestyle='--')

    plt.title("Samsung Stock Price Prediction")
    plt.xlabel("Date")
    plt.ylabel("Price")
    plt.legend()
    plt.show()

plot_predictions(data, predicted_prices)
```

### 코드 설명
1. `get_samsung_data()` 함수는 삼성전자의 종목 코드를 사용하여 최근 1년간의 OHLCV와 펀더멘털 데이터를 가져옵니다.
2. `preprocess_data()` 함수는 종가와 PER 데이터를 사용해 시퀀스 데이터로 변환하고 정규화를 진행합니다.
3. `create_lstm_model()` 함수는 LSTM 모델을 생성합니다.
4. `predict_future_prices()` 함수는 LSTM 모델을 사용하여 향후 일주일간의 주가를 예측합니다.
5. `plot_predictions()` 함수는 실제 주가와 예측된 주가를 그래프로 시각화합니다.

이 코드를 실행하면 삼성전자의 OHLCV 데이터를 바탕으로 LSTM 모델을 통해 주가 예측 결과를 확인할 수 있습니다.

728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

LG전자 주가 예측 파이썬 코딩  (0) 2024.11.03
주식거래 시스템을 위한 준비  (0) 2024.10.06
728x90
  1. 파이썬 설치
    https://www.python.org 에서 최신 버전을 다운로드 받음
    https://www.python.org/downloads/release/python-3127/
    가급적 3.9.x 버전을 설치하는 것을 권장함.
    최신버전의 경우 패키지 모듈이 설치 되지 않을 수 있다.
  2. 파이썬 관련 모듈 설치
    1) numpy : 수식 계산, 배열 연산
    pip install numpy
    2) pandas : : 데이터 처리와 분석
    pip install pandas
    3) matplotlib : 데이터 시각화
    pip install matplotlib
    4) pyinstaller : exe 파일 생성
    pip install pyinstaller
    5) pykrx : 주식 관련 데이터
    pip install pykrx
    6) ccxt : 암호화폐 관련 데이터
    pip install ccxt
    7) statsmodels : 통계분석, 회귀분석, 시계열분석
    pip install statsmodels
    8) pyqt5 : 파이썬 GUI 지원
    pip install pyqt5
    9) pyside2 : Qt Designer UI 디자인
    pip install pyside2
    10) tensorflow : 머신러닝과 딥러닝 오픈 소스
    pip install tensorflow
  3. 파이참 커뮤니티 설치
    제트브레인 홈페이지로 이동
    https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows
  4. vscode 설치
    https://code.visualstudio.com/
728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

LG전자 주가 예측 파이썬 코딩  (0) 2024.11.03
주식 예측 모델  (2) 2024.10.10

+ Recent posts