最近,我正在进行一个Kaggle项目“审慎人寿评估”,竞争对手在谈论如何更改标签以获取更好的指标。
在那个特定的比赛中,目标有8个类别(1-8),但是其中一个人使用了不同的标签,(-1.6, 0.7, 0.3, 3.15, 4.53, 6.5, 6.77, 9.0)或者他们使用了另一个示例[-1.6, 0.7, 0.3, 3.15, 4.53, 6.5, 6.77, 9.0]来代替[1,2,3,4,5,6,7,8]。
我想知道如何得出这些魔术数字?
我愿意接受任何想法/技巧/建议来进行此类转换。输入非常感谢!
范例程式码</p><h1><a href="#imports" name="imports">imports</a></h1><p>import numpy as np<br/>import pandas as pd<br/>import seaborn as sns<br/>import xgboost as xgb<br/>from sklearn import metrics<br/>from sklearn.model_selection import train_test_split</p><h1><a href="#data" name="data">data</a></h1><p>df = sns.load_dataset(‘iris’)<br/>df[‘species’] = pd.factorize(df[‘species’])[0]<br/>df = df.sample(frac=1,random_state=100)</p><h1><a href="#train-test-split" name="train-test-split">train test split</a></h1><p>X = df.drop(‘species’,axis=1)<br/>y = df[‘species’]<br/>Xtrain, Xtest, ytrain, ytest = train_test_split(X,y,stratify=y,random_state=100)</p><h1><a href="#modelling" name="modelling">modelling</a></h1><p>model = xgb.XGBClassifier(objective=‘multi:softprob’, random_state=100)<br/>model.fit(Xtrain, ytrain)<br/>preds = model.predict(Xtest)<br/>kappa = metrics.cohen_kappa_score(ytest, preds, weights=‘quadratic’)</p><p>print(kappa)<br/>
我的想法
标签实际上可以包含无限个数,如何转换[1-8]为[x-y]?
我们是否应该随机选择8个数字并检查所有kappa。似乎是最非理性的想法,可能永远不会起作用。
为此有某种梯度下降方法吗?也许不是,只是一个想法。