1

그래서 LinearSVC가 TPOT 분류기에 있다는 것을 알았고 모델에 사용하여 꽤 괜찮은 점수 (sklearn 점수로 0.95)를 얻었습니다.TPOT 권장 분류 기준이 LinearSVC보다 낮은 이유는 무엇입니까?

def process(stock): 
    df = format_data(stock) 
    df[['HSI Volume', 'HSI', stock]] = df[['HSI Volume', 'HSI', stock]].pct_change() 

# shift future value to current date 
    df[stock+'_future'] = df[stock].shift(-1) 
    df.replace([-np.inf, np.inf], np.nan, inplace=True) 
    df.dropna(inplace=True) 
    df['class'] = list(map(create_labels, df[stock], df[stock+'_future'])) 
    X = np.array(df.drop(['class', stock+'_future'], 1)) # 1 = column 
    # X = preprocessing.scale(X) 
    y = np.array(df['class']) 

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.2) 

    tpot = TPOTClassifier(generations = 10, verbosity=2) 
    fitting = tpot.fit(X_train, y_train) 
    prediction = tpot.score(X_test, y_test) 
    tpot.export('pipeline.py') 
    return fitting, prediction 

10 세대 후 : TPOT는 GaussianNB를 권장하고 sklearn 점수로 약 0.77 점을 얻습니다.

Generation 1 - Current best internal CV score: 0.5322255571      
Generation 2 - Current best internal CV score: 0.55453535828      
Generation 3 - Current best internal CV score: 0.55453535828      
Generation 4 - Current best internal CV score: 0.55453535828      
Generation 5 - Current best internal CV score: 0.587469903893     
Generation 6 - Current best internal CV score: 0.587469903893     
Generation 7 - Current best internal CV score: 0.597194474469     
Generation 8 - Current best internal CV score: 0.597194474469     
Generation 9 - Current best internal CV score: 0.597194474469     
Generation 10 - Current best internal CV score: 0.597194474469     

Best pipeline: GaussianNB(RBFSampler(input_matrix, 0.22)) 
(None, 0.54637855142056824) 

왜 LinearSVC가 높은 점수를 받았지만 TPOT가 권장하지 않는지 궁금합니다. 채점 메커니즘이 다르기 때문에 다른 최적의 분류 기준으로 이어지게됩니까?

정말 고마워요!

답변

0

내 개인적인 추측으로는 tpot가 로컬 최대 값에 머물렀거나 테스트 크기를 변경하려고 시도했거나 더 많은 세대를 수행하거나 데이터 크기를 조정하면 도움이 될 수 있습니다. 또한, TPOT를 다시하고 동일한 결과를 얻었습니까? (유전 적 최적화는 돌연변이로 인해 비 결정적이기 때문에 제 생각에는 아니오입니다.)

+1

맞습니다. TPOT에 더 많은 세대를 추가하여 문제를 해결하고 더 높은 정확도를 달성합니다. – BenjiBB