2017-09-18 1 views
1

저는 파이썬의 세계에서 정말 새롭습니다. 나는 이미 trainset과 testset에서 분열의 예를 보았습니다. 그러나 숫자 형으로 만 가능합니다. 예 :입력이있는 문자열로 trainset과 testset으로 나눕니다.

import random 

with open("datafile.txt", "rb") as f: 
    data = f.read().split('\n') 

random.shuffle(data) 

train_data = data[:50] 
test_data = data[50:] 

그럼 내가 원하는 것은 정규/상대 표현식에 따라 교육 또는 테스트 세트로 데이터를 분할하는 것입니다. 입력으로 할 수 있습니다. 내가 모든 열매를 가진 칼럼을 가지고 있다고 상상해보십시오. 또 다른 칼로리는 그의 무게로, 또 다른 칼로리는 가격으로 말입니다.하지만 그 중 일부는 가격이 없습니다. 나는 trainset을하기 위해 price> 0 인 사과를 위해 데이터를 나누고, 가격은 0 인 사과를 몇 가지 예측을하기 위해 테스트 세트로 나누고 싶다.

와 나는 데이터 집합으로, 그것을 할 싶어, 나는 내가 잘 설명하지 않는 경우

죄송 예측하기 원하는 내가 입력해야합니다.

그리고 도와 주셔서 감사합니다. 어떤 조언도 감사 할 것입니다. 애플, 무게 : 10 그리고 출력이 훈련을 수행 한 후 가격을되고 싶어

데이터는 그럼 난 과일 같은 입력하려면이

Fruits  Weight Price 
Apple  5   1 
Apple  3   0.6 
Apple  3   0 
Banana  5   10 
Banana  4   8 
Banana  2   0 
Orange  10  20 
Orange  5   12 
Orange  2   0 
Kiwi  5   6 
Kiwi  5   6 
Kiwi  2   0 

같은 수 있습니다.

도움을 다시 한번 감사드립니다 !!!

import pandas as pd 
import numpy as np 

df = pd.read_table('datafile.txt', sep='\s+', header=None) 
df.fillna(0, inplace=True) 
print(df) 


print(df.reindex(np.random.permutation(df.index))) 
가 제 print의 출력은

: 그와 NumPy와 대

+0

는 NumPy와 및 부울 색인을 배울 –

+0

* 나는 그것을 설명하지 않으면 잘 * - 그것은 당신이 입력 샘플 및 최종 예상 출력을 게시하는 경우 더 나은 것 – RomanPerekhrest

답변

1

사용 팬더

 0  1 
0 apple 10.0 
1 banana 4.0 
2 orange 2.0 
3 peach 0.0 

NumPy와의 permutation 기능을 사용하여 후에 DataFrame은 다음과 같다 :

 0  1 
2 orange 2.0 
0 apple 10.0 
1 banana 4.0 
3 peach 0.0 

첫 번째 열을 가져 오려면 n이면 df[0]을 사용하고 두 번째 열은 df[1]에 따라 액세스 할 수 있습니다. 둘 다 기본적으로 numpy 목록입니다. 이 데이터를 사용하여 교육 및 테스트를 수행 할 수 있습니다. 나는 이것이 당신에게 도움이되기를 바랍니다. 상당히 구체적인 질문이 없기 때문에 이것이 내가 할 수있는 전부입니다.

0

열차 세트 가격이 0보다 높은 로직을 테스트 세트는 0 가격으로 계산하는 로직을 기반으로 예측을 위해 데이터를 나누고 싶다고하셨습니다. 예측 모델을 만들려고하면 모델에 예측 편견이 있기 때문에 강력히 권고합니다.

예를 들어,이 논리를 사용하여 로지스틱 회귀 모델을 훈련하면 훈련 세트가 양수 값만 있기 때문에 항상 테스트 세트의 가격을 과대 평가합니다. 열차와 시험 세트는 모든 등급에 대해 동등한 한계 확률을 가져야한다.

데이터 집합으로 끝내고 나면 나눠야한다고 말하면서 분할을 sklearn.train_test_split 시도 할 수 있습니다. 예를 들어

import numpy as np 
from sklearn.model_selection import train_test_split 

#Create 5x4 table with the last column to be regarded as target value 
data = np.arange(20).reshape(5, 4) 

#Split into training/test for features(X) and target variable(y) 
X_train, X_test, y_train, y_test = train_test_split(data[:,0:3], 
data[:,3], test_size=0.33, random_state=42)