2017-05-16 4 views
0

CSV 파일에서 오렌지 데이터 테이블을 만들려고합니다.특정 도메인이있는 오렌지색 데이터 테이블

  1. 이의 데이터를 사용하여 새 데이터 테이블을 만들기 임시 데이터 테이블
  2. 에 파일을 읽기 대상 도메인
  3. 만들기 : 나는 현재 다음 단계를 사용하여이 작업을 수행하기 위해 노력하고있어이를 달성하기 위해 임시 테이블과 세 개의 라인 헤더 (https://docs.orange.biolab.si/3/data-mining-library/reference/data.io.html)와 탭 파일에 CSV를 변경 대상 도메인

를 선택할 수 없습니다.

다음과 같은 I 얻을 코딩이 절차를 번역 할 때 : 당신이 최종 인쇄 문에서 볼 수 있듯이 클래스 변수를 알 수없는

from Orange.data import Domain, DiscreteVariable, ContinuousVariable, Table 

    # Creating specific domain. Two attributes and a Class variable used as target 
    target_domain = Domain([ContinuousVariable.make("Attribute 1"),ContinuousVariable.make("Attribute 2")],DiscreteVariable.make("Class")) 
    print('Target domain:',target_domain) 
    # Target domain: [Attribute 1, Attribute 2 | Class] 

    # Reading in the file 
    test_data = Table.from_file('../data/knn_trainingset_example.csv') 
    print('Domain from file:',test_data.domain) 
    # Domain from file: [Attribute 1, Attribute 2, Class] 

    # Using specific domain with test_data 
    final_data = Table.from_table(target_domain,test_data) 

    print('Domain:',final_data.domain) 
    print('Data:') 
    print(final_data) 
    # Domain: [Attribute 1, Attribute 2 | Class] 
    # Data: 
    # [[0.800, 6.300 | ?], 
    # [1.400, 8.100 | ?], 
    # [2.100, 7.400 | ?], 
    # [2.600, 14.300 | ?], 
    # [6.800, 12.600 | ?], 
    # [8.800, 9.800 | ?], 
    # ... 

대신 예상되는 클래스의 (+ 또는 -) (?).

누군가가이 문제를 설명하거나 해결할 수 있습니까? 특정 도메인으로 데이터 테이블을 생성하는 더 나은/다른 방법을 제공 하시겠습니까?

+0

하하, 오렌지는 너무 바보입니다. 가능한 값, 즉 DiscreteVariable ("Class", values ​​= [ 'value1', 'value2'])'을 전달하도록 Class 변수를 구성해야합니다. 작동합니까? –

답변

0

네, 고마워요! 참고 문헌 (https://docs.orange.biolab.si/3/data-mining-library/reference/data.variable.html#discrete-variables)에 설명 된대로 가능한 계곡을 제공해야합니다. 그래서 튜플로 제공하는 것이 트릭을 만들었습니다. 나중에 참조 할 수 있도록 아래에 조정 된 코드를 배치했습니다.

from Orange.data import Domain, DiscreteVariable, ContinuousVariable, Table 

# Creating specific domain. Two attributes and a Class variable used as target 
target_domain = Domain([ContinuousVariable.make("Attribute 1"),ContinuousVariable.make("Attribute 2")],DiscreteVariable.make("Class",values=('+','-'))) 

print('Target domain:',target_domain) 
# Target domain: [Attribute 1, Attribute 2 | Class] 

# Reading in the file 
test_data = Table.from_file('../data/knn_trainingset_example.csv') 

print('Domain from file:',test_data.domain) 
# Domain from file: [Attribute 1, Attribute 2, Class] 

print('Data:') 
print(test_data) 
# [[0.800, 6.300 | −], 
# [1.400, 8.100 | −], 
# [2.100, 7.400 | −], 
# [2.600, 14.300 | +], 
# [6.800, 12.600 | −], 
# [8.800, 9.800 | +], 
# ... 

# Using specific domain with test_data 
final_data = Table.from_table(target_domain,test_data) 

print('Domain:',final_data.domain) 
# Domain: [Attribute 1, Attribute 2 | Class] 

print('Data:')  
# Data: 
# [[0.800, 6.300 | −], 
# [1.400, 8.100 | −], 
# [2.100, 7.400 | −], 
# [2.600, 14.300 | +], 
# [6.800, 12.600 | −], 
# [8.800, 9.800 | +], 
# ...