1. 自己写的变量与sklearn包中重名,程序优先调用自己写的变量导致:
RecursionError: maximum recursion depth exceeded
AttributeError: 'XGBRegressor' object has no attribute 'XGBRegressor'
解决:定义了与关键字相同的名字,如:xgb
2. API的bug问题,需要升级版本更新解决问题
AttributeError: 'Flags' object has no attribute 'c_contiguous'
3.数据中有空值NAN存在,需要处理
ValueError: np.nan is an invalid document, expected byte or unicode string.
4. ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4 5], got [3 4 5 6 7 8]
发生这种情况是因为类列必须从 0 开始(自 1.3.2 版以来要求)。解决这个问题的一种简单方法是使用sklearn.preprocssing 库中的LabelEncoder。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y = le.fit_transform(y)
5.逻辑回归:
LogisticReression的api中并没有提供调整0,1标签的阈值
predict_proba:一个结果的0,1分别占概率,两个概率值是100%, 所以可以通过estimator.predict_proba(),先得到1标签的概率,自己进行判断并计算 np.where()判断并进行统计计算
6.codex 是早期2.x对文本编码处理比较靠谱,Open.file()有编码问题, 3.x之后问题不存在
7. XGBoostError: value 0 for Parameter num_class should be greater equal to 1 num_class: Number of output class in the multi-class classification.
参数问题:去掉objective='multi:softmax'参数问题解决