Datumbox Machine Learning Framework 버전 0.8.0은 PlatoBlockchain Data Intelligence를 출시했습니다. 수직 검색. 일체 포함.

Datumbox Machine Learning Framework 버전 0.8.0 출시

Datumbox Framework v0.8.0이 출시되었으며 몇 가지 강력한 기능이 포함되어 있습니다! 이 버전은 새로운 전처리, 기능 선택 및 모델 선택 알고리즘, 모델 및 데이터 프레임이 저장 /로드되는 방식을 더 잘 제어 할 수있는 새롭고 강력한 스토리지 엔진, 여러 사전 훈련 된 기계 학습 모델 및 많은 메모리 및 속도 향상을 제공합니다. 지금 다운로드 깃허브 or 메이븐 센트럴 리포지토리.

버전 0.8.0의 주요 목표 중 하나는 프레임 워크의 스토리지 메커니즘을 개선하고 지원되는 모든 알고리즘에 디스크 기반 교육을 제공하는 것입니다. 새로운 스토리지 엔진은 모델이 유지되는 방법과시기를보다 잘 제어 할 수 있습니다. 한 가지 중요한 변경 사항은 fit () 메소드가 완료된 후 모델이 자동으로 저장되지 않고 대신 모델 이름을 제공하는 save () 메소드를 명시 적으로 호출해야한다는 것입니다. 이를 통해 직렬화 단계를 거치지 않고 더 쉬운 임시 알고리즘을 폐기 할 수있을뿐만 아니라 데이터 프레임을 저장 /로드 할 수 있습니다.

Configuration configuration = Configuration.getConfiguration();
Dataframe data = ...; //load a dataframe here

MaximumEntropy.TrainingParameters params = new MaximumEntropy.TrainingParameters();
MaximumEntropy model = MLBuilder.create(params, getConfiguration());
model.fit(data);
model.save("MyModel"); //save the model using the specific name
model.close();

data.save("MyData"); //save the data using a specific name
data.close();

data = Dataframe.Builder.load("MyData", configuration); //load the data
model = MLBuilder.load(MaximumEntropy.class, "MyModel", configuration); //load the model
model.predict(data);
model.delete(); //delete the model

현재 두 가지 스토리지 엔진을 지원합니다. InMemory 엔진은 메모리에 모든 것을로드 할 때 매우 빠르며 MapDB 엔진은 느리지 만 디스크 기반 교육을 허용합니다. datumbox.configuration.properties를 변경하여 사용하는 엔진을 제어하거나 구성 객체를 프로그래밍 방식으로 수정할 수 있습니다. 각 엔진에는 자체 구성 파일이 있지만 프로그래밍 방식으로 모든 것을 수정할 수 있습니다.

Configuration configuration = Configuration.getConfiguration(); //conf from properties file

configuration.setStorageConfiguration(new InMemoryConfiguration()); //use In-Memory engine
//configuration.setStorageConfiguration(new MapDBConfiguration()); //use MapDB engine

두 엔진 모두 모델 저장 위치를 ​​제어하는 ​​디렉토리 설정이 있습니다 (inMemoryConfiguration.디렉토리mapDB구성.디렉토리 구성 파일의 속성). 모델을 변경하지 않으면 시스템의 임시 폴더에 모델이 기록됩니다. 구성 파일을 구성하는 방법에 대한 자세한 내용은 코드 예제 프로젝트.

새로운 스토리지 메커니즘을 통해 이제 공개적으로 공유 할 수 있습니다 사전 훈련 된 모델 여기에는 감성 분석, 스팸 감지, 언어 감지, 주제 분류 및 Datumbox API를 통해 사용 가능한 다른 모든 모델이 포함됩니다. 당신은 지금 할 수 있습니다 다운로드 API를 호출하지 않고 일일 호출 횟수에 제한을받지 않고 프로젝트에서 사전 훈련 된 모든 모델을 사용할 수 있습니다. 현재 게시 된 모델은 InMemory 스토리지 엔진을 사용하여 학습되었으며 영어 만 지원합니다. 향후 릴리스에서는 더 많은 언어를 지원할 계획입니다.

새로운 프레임 워크에서는 많은 클래스의 공용 메소드에 몇 가지 변경 사항이 있습니다 (따라서 이전 버전과 호환되지 않습니다). 가장 주목할만한 차이점은 모델이 초기화되는 방식에 있습니다. 앞의 코드 예제에서 보았 듯이 모델은 직접 인스턴스화되지 않고 MLBuilder 클래스를 사용하여 모델을 만들거나로드합니다. 교육 매개 변수는 빌더에 직접 제공되며 세터를 사용하여 변경할 수 없습니다.

또 다른 개선은 모델 선택을 수행하는 방식입니다. v0.8.0에는 모델의 성능을 검증하고 측정하는 데 필요한 모든 도구를 제공하는 새로운 모델 선택 패키지가 도입되었습니다. 메트릭 하위 패키지에서 분류, 클러스터링, 회귀 및 권장 사항에 대한 가장 중요한 유효성 검사 메트릭을 제공합니다. ValidationMetrics는 각 개별 알고리즘에서 제거되며 더 이상 모델과 함께 저장되지 않습니다. 이 프레임 워크는 새로운 스플리터 서브 패키지를 제공하여 다른 스키마를 사용하여 원본 데이터 세트를 분할 할 수 있습니다. 현재 K- 폴드 분할은 KFoldSplitter 클래스를 사용하여 수행되며 데이터 세트를 학습으로 분할하고 ShuffleSplitter를 사용하여 테스트 세트를 수행 할 수 있습니다. 마지막으로 모델을 신속하게 검증하기 위해 프레임 워크는 Validator 클래스를 제공합니다. 다음은 몇 줄의 코드 내에서 K- 폴드 교차 검증을 수행하는 방법입니다.

ClassificationMetrics vm = new Validator<>(ClassificationMetrics.class, configuration)
    .validate(new KFoldSplitter(k).split(data), new MaximumEntropy.TrainingParameters());

새로운 전처리 패키지는 기존 Data Transformer를 대체하고 머신 러닝 알고리즘 전에 데이터를 스케일링하고 인코딩하는 방법을보다 잘 제어합니다. 수치 변수 스케일링을 위해 MinMaxScaler, StandardScaler, MaxAbsScaler 및 BinaryScaler 알고리즘이 지원됩니다. 범주 형 변수를 부울로 인코딩하려면 OneHotEncoder 및 CornerConstraintsEncoder 메소드를 사용할 수 있습니다. 새로운 알고리즘을 사용하는 방법은 다음과 같습니다.

StandardScaler numericalScaler = MLBuilder.create(
    new StandardScaler.TrainingParameters(), 
    configuration
);
numericalScaler.fit_transform(trainingData);

CornerConstraintsEncoder categoricalEncoder = MLBuilder.create(
    new CornerConstraintsEncoder.TrainingParameters(), 
    configuration
);
categoricalEncoder.fit_transform(trainingData);

또 다른 중요한 업데이트는 기능 선택 패키지가 다시 작성되었다는 사실입니다. 현재 모든 기능 선택 알고리즘은 특정 데이터 유형에 중점을 두어 다양한 방법을 함께 연결할 수 있습니다. 결과적으로 TextClassifier 및 Modeler 클래스는 하나가 아닌 기능 선택기 매개 변수 목록을 수신합니다.

앞에서 언급했듯이 이제 모든 알고리즘은 행렬을 사용하는 알고리즘을 포함하여 디스크 기반 교육을 지원합니다 (단, Support Vector Machines 만 예외). 새로운 스토리지 엔진 메커니즘을 통해 일부 알고리즘 또는 데이터 프레임을 메모리에 저장하고 다른 알고리즘은 디스크에 저장하도록 구성 할 수도 있습니다. 새로운 스토리지 엔진 메커니즘과 DPMM 제품군의 알고리즘과 같은 개별 알고리즘의 조정으로 인해 몇 가지 속도 개선이 주로 도입되었습니다.

마지막으로 새로운 버전은 모든 종속성을 최신 버전으로 업데이트하고 commons-lang 및 lp_solve와 같은 일부 종속성을 제거합니다. HTML 파싱에 사용 된 commons-lang은 더 빠른 사용자 정의 HTMLParser 구현으로 대체되었습니다. lp_solve는 순수한 Java 단순 솔버로 대체되어 Datumbox는 더 이상 운영 체제에 특정 시스템 라이브러리를 설치할 필요가 없습니다. 또한 lp_solve는 Apache 2 라이센스와 호환되지 않는 LGPLv2.0를 사용하기 때문에 가야했습니다.

버전 0.8.0은 프레임 워크에서 몇 가지 새로운 기능과 향상된 기능을 제공합니다. 변경 사항에 대한 자세한 내용은 Changelog.

의 코드를 복제하는 것을 잊지 마십시오 Datumbox 프레임 워크 v0.8.0 Github에서 코드 예 사전 훈련 된 머신 러닝 모델을 다운로드하십시오. 데이텀 박스 동물원. 귀하의 의견과 제안을 기다리고 있습니다.

타임 스탬프 :

더보기 데이텀 박스