달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  


 

ThreadGroup(스레드 그룹)

·       스레드들 관련된 스레드를 묶어서 관리할 목적으로 이용을 합니다.

·       JVM 실행되면 system 스레드 그룹을 만들고, JVM운영에 필요한 스레드들을 생성해서 system스레드 그룹에 포함시킵니다. 그리고 system 하위 스레드 그룹으로 main 만들고 메인 스레드를 main스레드 그룹에 포함시킵니다.

·       스레드는 반드시 하나의 스레드 그룹에 포함되며 명시적으로 스레드 그룹을 포함시키지 않으면 기본적으로 자신을 생성한 스레드와 같은 스레드 그룹에 속하게 됩니다.

·       우리가 생성하는 작업 스레드는 대부분 main스레드가 생성하므로 기본적으로 main스레드 그룹에 속하게 됩니다.

·       스레드 그룹은 다른 스레드 그룹을 포함할 수도 있으며, 이렇게 포함된 스레드 그룹은 트리 형태로 연결됩니다. 이때 스레드는 자신이 포함된 스레드 그룹이나 하위 그룹에는 접근할 있지만, 다른 그룹에는 접근할 없습니다. 이렇게 스레드 그룹은 스레드가 접근할 있는 범위를 제한하는 보안상으로도 중요한 역할을 하고 있습니다.

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2020. 1. 13. 09:56

과적합 검증 Development/Java



 

 

알고리즘별 정분류율 - IBk, J48, Logistic, SMO

10 교차검증 결과와 useTrainingSet 비교하여 과적합 검증을 수행합니다.

 

알고리즘

정분류율 (10-fold)

정분류율 (Use training set)

차이

IBk

72      %

100      %

100-72=28

J48

70.5    %

78.6    %

78.6-70.5=8.1

Logistic

75.2    %

75.2    %

75.2-75.2=0

SMO

75.1    %

78.4    %

78.4-75.1=3.3

 

 

 

 

 

데이터 해석

Logistic SMO (서포트벡테머신 분류기) 차이는 0%, 3% 이며 이는 과적합이 크게 발생하지 않는다는 것을 의미합니다. 과적합에 어느정도 자유롭다고 있습니다.

IBk 28% 과적합인 상태이며 8% 차이인 J48 과적합이 발생될 가능성이 높습니다.

 

10 교차검증 결과와 useTrainingSet 비교하면 과적합을 검증할 있습니다.

서포트벡터머신(SVM) 사용하면 과적합에 어느정도 자유롭다는 것을 10 교차검증 결과와 useTrainingSet 비교함으로써 입증이 되어졌습니다.

 

 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

초기화 블록 종류

·         인스턴스 초기화 블록

·         클래스 초기화 블록

 

 

 

 

인스턴스 초기화 블록

·         인스턴스 초기화 블록은 단순히 중괄호({})만을 사용하여 정의할 있습니다.

·         인스턴스 초기화 블록은 생성자와 마찬가지로 인스턴스가 생성될 때마다 실행됩니다.

·         하지만 인스턴스 초기화 블록이 생성자보다 먼저 실행됩니다.

·         생성자와 인스턴스 초기화 블록의 차이는 거의 없으므로 인스턴스 초기화 블록은 사용되지 않습니다.

·         여러 개의 생성자가 있으면 모든 생성자에서 공통으로 수행되어야 코드 인스턴스 초기화 블록에 포함하여 코드의 중복을 막을 있습니다.

 

class MyClass {

// 인스턴스 변수 선언

    int instanceVar;

   

    { // 인스턴스 초기화 블록

        this.instanceVar = 10;

    }

   

    // 생성자

    MyClass(){

       

    }

}

 

 

 

클래스 초기화 블록

·         클래스 초기화 블록은 인스턴스 초기화 블록에 static 키워드를 추가하여 정의할 있습니다.

·         이러한 클래스 초기화 블록은 클래스가 처음으로 메모리에 로딩될 번만 실행됩니다.

 

·         클래스 초기화 블록은 생성자나 인스턴스 초기화 블록으로는 수행할 없는 클래스 변수의 초기화를 수행할 사용됩니다.

 

static { // 클래스 초기화 블록을 이용한 초기화

초기화 문장;

}

 

 

static {

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

CSV -> arff 파일 변환하기

Weka Explorer, Weka Workbench 에서 CSV 파일 불러온

[Save] 하여 arff 파일로 저장하면 쉽게 arff 파일로 변환할 있습니다.

 

 

 

Step by Step

·         데이터 불러오기 (CSV)

·         데이터 확인

·         arff 파일로 저장하기

·         arff 파일 확인하기

 

 

 

 

데이터 불러오기 (CSV)

 


 

[Preprocess] >>

[Open file] 클릭

UniversalBank.csv


 


 

 

 

 

데이터 확인

[Edit…]


 

 

 

arff 파일로 저장하기

우측 상단의 [Save] 버튼 클릭


 

 

 

원하는 저장 경로로 이동 >>

동일한 파일명에 확장자만 arff 해서 저장합니다. >>

[Save]

UniversalBank.arff


 

 

 

 

arff 파일 확인하기

 


 


 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

Weka - Attribute data type

타입

설명

Real

numeric values like 1.2

실수

Integer

numeric values without a fractional part like 5

정수

Nominal

categorical data

범주형 데이터

String

lists of words, like this sentence

문자열

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

오류 메시지

 

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

java.sql.SQLException: The server time zone value '????α? ????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

at

 

 

 

해결방법

아래와 같이 Driver명을 변경해 줍니다.

수정전

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

수정후

try {

Class.forName("com.mysql.cj.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

Lotto 프로그램 - HashSet

중복값을 허용하지 않는 HashSet 이용하여 로또 프로그램 만들기

 

 

 


 

 

 

 

 

소스 코드

import java.util.Collections;

import java.util.HashSet;

import java.util.LinkedList;

import java.util.List;

import java.util.Set;

 

public class HashSetLotto {

 

public static void main(String[] args) {

// HashSet 객체 생성

// HashSet <Integer> set = new HashSet<Integer>();

Set <Integer> set = new HashSet<Integer>();

//초기에 Set타입으로 객체생성하여 데이터를 삽입함       

while(set.size() < 6){

// 1~45난수 발생

// hs.add( (int)(Math.random()*45+1) );

int num = (int)(Math.random()*45+1);

set.add(new Integer(num));       

}       

System.out.println(set); //[32, 41, 25, 26, 42, 12]

//정렬하기

//        Collections.sort(set);

//ERROR: The method sort(List<T>) in the type Collections is not applicable for the arguments (HashSet<Integer>)

//Collections.sort는 리스트타입이여서 set타입을 리스트 타입으로 반들어줘야 합니다.

 

//Set -> ArrayList(Collection) -> List (변환방법1)

//Set은 정렬을 못하므로 List타입으로 변환

//        List<Integer> list = new ArrayList<Integer>(set);

//Set -> LinkedList(Collection) -> List (변환방법2)

//LinkedList생성자를 통해 HashSet에 저장된 객체들을 LinkedList에 담아 List타입으로 변환합니다.

List<Integer> list = new LinkedList<Integer>(set);    // LinkedList(Collection c)

System.out.println(list); //[32, 41, 25, 26, 42, 12]

//번호를 크기순으로 정렬하기 위해 Collections클래스의 sort()메소드로 정렬

//sort(List list)는 인자로 List인터페이스 타입만 허용하므로 Set List로 변환한 list

Collections.sort(list);

//정렬 후 로또번호 결과

//정렬기준은 컬렉션에 저장된 객체가 Integer이므로 Integer클래스에 정의된 기본정렬이 사용되었습니다.

System.out.println("\nlotto : " + list); //lotto : [12, 25, 26, 32, 41, 42]

}

}

 

 

/*

[24, 40, 8, 10, 13, 31]

[24, 40, 8, 10, 13, 31]

 

lotto : [8, 10, 13, 24, 31, 40]

 

*/

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

다이아몬드별, 모래시계 출력하기

https://codedragon.tistory.com/4363

https://codedragon.tistory.com/8088

 

 

 

 

소스 코드

 

//다이아몬드 별 만들기

//바깥쪽 for문의 변수i의 값을 조절함으로써 역피라미드 모양과 피라미드 모양을 만들 수 있습니다.

public class LAB09 {

public static void printStarDecrease(int n){

int i, j, k;

for( i=0; i<n;i++){

//공백을 만드는 안쪽 for문은 바깥쪽 for문의 변수 i만큼 공백을 찍습니다.

for( j=0; j<i;j++){

System.out.printf(" ");

}

// 2x(피라미드 높이-i)-1만큼 *을 찍어줍니다.

for( k=1; k<2*(n-i);k++){

System.out.printf("*");

}

System.out.printf("\n");

}

}

 

public static void printStarIncrease(int n){

int i, j, k;

for(i=n-1; i>=0;i--){

for(j=0; j<i;j++){

System.out.printf(" ");

}

for(k=1; k<2*(n-i);k++){

System.out.printf("*");

}

System.out.printf("\n");

}

}

public static void printButterfly(int n){

printStarDecrease(n);

printStarIncrease(n);

}

public static void printDiamond(int n){

printStarIncrease(n);

printStarDecrease(n);

}

 

public static void main(String[] args) {

printDiamond(5);

//        printButterfly(5);

}

 

}

 

/*

    *

   ***

  *****

 *******

*********   9

*********

 *******

  *****

   ***

    *

*/

 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

MLOSS

JMLR Machine Learning Open Source Software (MLOSS)

 

http://jmlr.org/mloss/


 

 

 

mloss.org

forum for open source software in machine learning

 

https://mloss.org/software/


 

 


'Development > Java' 카테고리의 다른 글

LAB - Lotto 프로그램 - HashSet  (0) 2019.12.12
LAB - 다이아몬드별, 모래시계 출력하기  (0) 2019.12.12
Machine Learning Open Source Software (MLOSS)  (0) 2019.12.12
Apache Mahout(아파치 머하웃)  (0) 2019.12.12
KNIME  (0) 2019.12.12
MOA (Massive Online Analysis)  (0) 2019.12.12
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

Apache Mahout(아파치 머하웃)

·         대용량 데이터를 처리하는 분산처리가 가능하고 확장성을 가진(scalable) 기계학습용 오픈 소스 라이브러리입니다.

·         Apache project to produce free implementations of distributed or

otherwise scalable machine learning algorithms

 

·         Classification, clustering, and collaborative filtering, frequent itemset mining

 

 

·         맵리듀스를 이용하는 아파치 하둡위에 적용되며 비슷한 특성을 가진 데이터들을 분류하고 정의하는 작업 협업 필터링(collaborative filtering) 수행합니다.

 

https://en.wikipedia.org/wiki/Apache_Mahout

http://bit.ly/2PkcjZc

http://bit.ly/2JrfydJ

 

 

 

 

http://mahout.apache.org/


 

 

 

 

https://github.com/apache/mahout


 

 


'Development > Java' 카테고리의 다른 글

LAB - 다이아몬드별, 모래시계 출력하기  (0) 2019.12.12
Machine Learning Open Source Software (MLOSS)  (0) 2019.12.12
Apache Mahout(아파치 머하웃)  (0) 2019.12.12
KNIME  (0) 2019.12.12
MOA (Massive Online Analysis)  (0) 2019.12.12
CharlesBookClub.csv  (0) 2019.12.11
Posted by codedragon codedragon

댓글을 달아 주세요