在进行pycaret自动机器学习时,输出的结果不是一个表格,而是
请问怎么解决。
import numpy as np
import pandas as pd
import random
# Classification
#from pycaret.classification import *
# Regression
from pycaret.regression import *
# Clustering
#from pycaret.clustering import *
#from pycaret.anomaly import *
#from pycaret.nlp import *
#from pycaret.arules import *
#获取数据集
df1=pd.read_csv(r"C:\Users\Hp\Desktop\data.csv")
#数据预处理:删除缺失值、相同值、以及将其按照0.8的比例训练、以及移除特别离谱的值
data=setup(data=df1,target='label',train_size=0.8,remove_outliers = True)
# 比较所有模型、比较了60多个模型包括回归算法、分类算法、nlp等
compare_models()
导入 from IPython.display import display 举例:
import pandas as pd
from IPython.display import display
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
display(df2)
望采纳!!!点击回答右侧采纳即可!!
你需要在调用 compare_models() 函数之后,再次调用 pandas 的 display() 函数将结果输出到终端。
results = compare_models()
display(results)
望采纳。
首先呢,先说原因,因为pare_models()函数返回的是一个Styler对象,而非表格,你必须将它转换成可视化表格,才能看到结果。您可以使用.dataframe函数将Styler对象转换成可视化表格,例如: model_results = pare_models().dataframe()
<pandas.io.formats.style.Styler object at 0x00000247BADDD4C0> 是一个 pandas 的 DataFrame 的样式对象,它不会自动输出表格。
要解决这个问题,你需要使用 pandas 的 display() 函数来显示表格。 例如:
from IPython.display import display
# your code
result = pycaret.compare_models()
display(result)
这样就可以在 notebook 中显示结果了
如果你是在非 notebook 环境中运行代码,你可以使用 print(result) 来打印输出结果
需要注意的是,这是一种最简单的方式,如果你想要更美观的输出,可以使用 pandas 的样式函数,让你的结果更好的阅读。