728x90 반응형 SMALL 분류 전체보기1627 [LightGBM] Features (1) 속도 및 메모리 사용량 최적화 많은 부스팅 도구는 의사결정 트리 학습을 위해 사전 정렬 기반 알고리즘 (ex: xgboost의 기본 알고리즘)을 사용한다. 간단한 솔루션이지만 최적화하기가 쉽지 않다. LightGBM은 히스토그램 기반 알고리즘을 사용하여 연속적인 특징 (속성) 값을 개별 bin으로 묶는다. 이렇게 하면 훈련 속도가 빨라지고 메모리 사용량이 줄어든다. 히스토그램 기반 알고리즘의 장점은 다음과 같다. 각 분할에 대한 이득 계산 비용 절감 사전 정렬 기반 알고리즘에는 시간 복잡도 O(#data)가 있다. 히스토그램 계산에는 시간 복잡도 O(#data)가 있지만 이는 빠른 합계 연산만 포함한다. 히스토그램이 구성되면 히스토그램 기반 알고리즘은 시간 복잡도 O(#bins)를 가지며 #bins는 #.. 2022. 6. 28. [LightGBM] Python 패키지 (2) 매개변수 설정 LightGBM은 사전을 사용하여 매개변수를 설정할 수 있다. # 부스터 매개변수: param = {'num_leaves': 31, 'objective': 'binary'} param['metric'] = 'auc' # 여러 평가 지표를 지정 param['metric'] = ['auc', 'binary_logloss'] 훈련 모델을 훈련하려면 매개변수 목록과 데이터 세트가 필요하다. num_round = 10 bst = lgb.train(param, train_data, num_round, valid_sets=[validation_data]) 학습 후 모델을 저장할 수 있다. bst.save_model('model.txt') 훈련된 모델은 JSON 형식으로 덤프할 수도 있다. json_mo.. 2022. 6. 28. [LightGBM] Python 패키지 (1) 설치 pip install lightgbm 데이터 인터페이스 LightGBM Python 모듈은 다음에서 데이터를 로드할 수 있다. LibSVM (zero-based) / TSV / CSV 형식 텍스트 파일 NumPy 2D 배열, pandas DataFrame, H2O DataTable의 프레임, SciPy 희소 행렬 LightGBM 바이너리 파일 LightGBM Sequence개체 데이터는 Dataset개체에 저장된다. import numpy as np # LibSVM(0 기반) 텍스트 파일 또는 LightGBM 바이너리 파일을 Dataset에 로드하려면: train_data = lgb.Dataset('train.svm.bin') # numpy 배열을 Dataset에 로드하려면: data = np.ra.. 2022. 6. 28. LightGBM LightGBM LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크이다. 다음과 같은 이점이 있는 분산 및 효율적으로 설계되었다. 더 빠른 훈련 속도와 더 높은 효율성 메모리 사용량을 줄임 더 나은 정확도 병렬, 분산 및 GPU 학습 지원 대규모 데이터를 처리할 수 있음 https://lightgbm.readthedocs.io/en/latest/index.html Welcome to LightGBM’s documentation! — LightGBM 3.3.2.99 documentation © Copyright 2022, Microsoft Corporation. Revision df14e607. lightgbm.readthedocs.io 2022. 6. 28. [PySide] 대화 상자 (Dialogs) (2) QMessageBox : 간단한 메시지 대화 상자 대화 상자를 수락하거나 취소할 수 있는 버튼이 있는 메시지는 간단한 패턴을 따르지 않는다. 이러한 대화 상자를 직접 구성할 수 있지만 Qt는 QMessageBox라는 내장 메시지 대화 상자 클래스도 제공한다. 이것은 정보, 경고 또는 질문 대화 상자를 만드는 데 사용할 수 있다. import sys from PySide6.QtWidgets import QApplication, QDialog, QMainWindow, QMessageBox, QPushButton class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("My App") button = QP.. 2022. 6. 27. [PySide] 대화 상자 (Dialogs) (1) 대화 상자 (Dialogs) 대화 상자는 사용자와 통신 할 수 있는 유용한 GUI 구성 요소이다. 파일 열기/저장, 설정, 환경 설정 또는 응용 프로그램의 기본 UI에 맞지 않는 기능에 일반적으로 사용된다. 닫힐 때까지 기본 응용 프로그램 앞에 있는 작은 modal (또는 차단) 창이다. Qt는 가장 일반적인 사용 사례에 대해 여러 내장 대화 상자를 제공하여 플랫폼 고유의 사용자 경험을 제공할 수 있도록 한다. Qt에서 대화 상자는 QDialog클래스에 의해 처리된다. 새 대화 상자를 만들려면 다른 위젯 QDialog (ex: QMainWindow 부모)을 전달하는 유형의 새 개체를 만들기만 하면 된다. import sys from PySide6.QtWidgets import QApplication, Q.. 2022. 6. 27. [PySide] 메뉴 (Menus) 메뉴 (Menus) 메뉴는 UI의 또 다른 표준 구성 요소이다. 일반적으로 창 상단 또는 macOS의 화면 상단에 있다. 모든 표준 응용 프로그램 기능에 대한 액세스를 허용한다. 파일, 편집, 도움말과 같은 몇 가지 표준 메뉴가 있다. 메뉴를 중첩하여 기능의 계층적 트리를 만들 수 있으며 해당 기능에 빠르게 액세스할 수 있도록 종종 키보드 단축키를 지원하고 표시한다. 메뉴를 생성하기 위해 QMainWindow에서 .menuBar()를 호출하는 메뉴바를 생성한다. .addMenu()를 호출하여 메뉴 이름을 전달하여 메뉴 표시줄에 메뉴를 추가한다. 이미 존재하는 QAction을 재사용하여 메뉴에 동일한 기능을 추가할 수 있다. .addAction 액션을 추가하려면 정의된 액션 중 하나를 전달하는 것을 호출한.. 2022. 6. 27. [PySide] 툴바 (Toolbars) Toolbars 가장 일반적으로 볼 수 있는 사용자 인터페이스 요소 중 하나는 도구 모음이다. 도구 모음은 메뉴를 통한 액세스가 번거로운 응용 프로그램 내에서 일반적인 작업을 수행하는 데 사용되는 아이콘 또는 텍스트 막대이다. 이는 많은 애플리케이션에서 볼 수 있는 가장 일반적인 UI 기능 중 하나이다. 특히, Microsoft Office 제품군의 일부 복잡한 응용 프로그램은 상황에 맞는 'ribbon' 인터페이스로 이동되었지만 일반적으로 만들려는 대부분의 응용 프로그램에는 표준 도구 모음으로 충분하다. import sys from PySide6.QtWidgets import ( QMainWindow, QApplication, QLabel, QToolBar, QStatusBar ) from PySide.. 2022. 6. 27. [PySide] 레이아웃 (Layouts) (3) QStackedLayout : 같은 공간에 있는 여러 위젯 이 레이아웃을 사용하면 요소를 서로 바로 앞에 배치할 수 있다. 그런 다음 표시할 위젯을 선택할 수 있다. 그래픽 응용 프로그램에서 레이어를 그리거나 탭과 같은 인터페이스를 모방하는 데 사용할 수 있다. 정확히 같은 방식으로 작동하는 컨테이너 위젯 QStackedWidget도 있다. setCentralWidget은 QMainWindow에 직접 스택을 추가하려는 경우에 유용하다. from PySide6.QtWidgets import QStackedLayout # add this import class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle.. 2022. 6. 23. [PySide] 레이아웃 (Layouts) (2) QHBoxLayout : 가로로 배열된 위젯 QHBoxLayout은 수평으로 움직이는 것을 제외하고는 동일하다. 위젯을 추가하면 오른쪽에 추가된다. 그것을 사용하기 위해 QVBoxLayout를 QHBoxLayout로 변경할 수 있다. 이제 상자가 왼쪽에서 오른쪽으로 흐른다. class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle("My App") layout = QHBoxLayout() layout.addWidget(Color('red')) layout.addWidget(Color('green')) layout.addWidget(Color('blue')) widget = .. 2022. 6. 23. 이전 1 ··· 88 89 90 91 92 93 94 ··· 163 다음 728x90 반응형 LIST