python 에서 출력 을 실행 하 는 데 이 터 를 가 져 오고 dataFrame 인 스 턴 스 로 분석 합 니 다.
AttributeError: 'Booster' object has no attribute 'evals_result_'
분류 기 나 회귀 기 를 사용 하 는 것 이 아니 라 fit 가 아 닌 train 을 사용 하여 훈련 하 는 것 이기 때문에 소스 코드 fit 를 봐 야 evals 가 있 습 니 다.result_이 때문에 훈련 후 에는 이것 이 없 지만 학습 곡선 을 얻 으 려 면 훈련 데이터 가 필요 할 것 이다.
실행 결과 에 데이터 가 있 기 때문에 화면의 데 이 터 를 스스로 분석 하고 싶 습 니 다.화면 은 우리 가 교체 하 는 과정 이 있 는 데 이 터 를 볼 수 있 기 때문에 화면의 데 이 터 를 직접 얻 으 려 면 생각 이 비교적 낮 지만 간단 하고 거 칠 습 니 다.
다음은 두 단계 로 나 누 어 완성 합 니 다.
1)화면 데이터 가 져 오기
import subprocess
import pandas as pd
top_info = subprocess.Popen(["python", "main.py"], stdout=subprocess.PIPE)
out, err = top_info.communicate()
out_info = out.decode('unicode-escape')
lines=out_info.split('
')
주:이곳 의 main.py 는 자신 이 이전에 실행 한 python 파일 입 니 다.2)파일 데이터 분석:
ln=0
lst=dict()
for line in lines:
if line.strip().startswith('[{}] train-auc:'.format(ln)):
if ln not in lst.keys():
lst.setdefault(ln, {})
tmp = line.split('\t')
t1=tmp[1].split(':')
t2=tmp[2].split(':')
if str(t1[0]) not in lst[ln].keys():
lst[ln].setdefault(str(t1[0]), 0)
if str(t2[0]) not in lst[ln].keys():
lst[ln].setdefault(str(t2[0]), 0)
lst[ln][str(t1[0])]=t1[1]
lst[ln][str(t2[0])]=t2[1]
ln+=1
json_df=pd.DataFrame(pd.DataFrame(lst).values.T, index=pd.DataFrame(lst).columns, columns=pd.DataFrame(lst).index).reset_index()
json_df.columns=['numIter','eval-auc','train-auc']
print(json_df)
전체 코드:
import subprocess
import pandas as pd
top_info = subprocess.Popen(["python", "main.py"], stdout=subprocess.PIPE)
out, err = top_info.communicate()
out_info = out.decode('unicode-escape')
lines=out_info.split('
')
ln=0
lst=dict()
for line in lines:
if line.strip().startswith('[{}] train-auc:'.format(ln)):
if ln not in lst.keys():
lst.setdefault(ln, {})
tmp = line.split('\t')
t1=tmp[1].split(':')
t2=tmp[2].split(':')
if str(t1[0]) not in lst[ln].keys():
lst[ln].setdefault(str(t1[0]), 0)
if str(t2[0]) not in lst[ln].keys():
lst[ln].setdefault(str(t2[0]), 0)
lst[ln][str(t1[0])]=t1[1]
lst[ln][str(t2[0])]=t2[1]
ln+=1
json_df=pd.DataFrame(pd.DataFrame(lst).values.T, index=pd.DataFrame(lst).columns, columns=pd.DataFrame(lst).index).reset_index()
json_df.columns=['numIter','eval-auc','train-auc']
print(json_df)
효과 보기:이 편 은 python 에서 출력 을 실행 하 는 데 이 터 를 가 져 오고 dataFrame 인 스 턴 스 로 해석 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.