我正在尝试开发一个简单的机器学习模型,用于根据两个队伍中角色的存在来预测两队比赛的结果。每个角色由100多列表示,这些列的值为-1、0或1,分别表示该角色是否在对方队伍中、不在比赛中,还是在“友方”队伍中。我有大约6万场比赛的数据。我已经成功地将数据分为标签(比赛结果是赢还是输)和特征(比赛中的角色),但这些特征被分散在100多列中。我希望将这些特征合并为一个包含表示比赛中角色的向量的特征列,但在Pandas文档中没有找到这样的命令。
这是我调用后当前得到的输出:
for feature_batch, label_batch in train_ds.take(1): print('每个特征:', list(feature_batch.keys()))每个特征: ['0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '1', '0.9', '0.10', '0.11', '1.1', '0.12', '0.13', '0.14', '-1.1', '0.15', '0.16', '0.17', '-1.2', '0.18', '0.19', '1.2', '0.20', '0.21', '1.3', '0.22', '0.23', '0.24', '1.4', '0.25', '0.26', '0.27', '0.28', '0.29', '-1.3', '0.30', '0.31', '0.32', '0.33', '0.34', '0.35', '0.36', '0.37', '0.38', '0.39', '0.40', '0.41', '0.42', '0.43', '0.44', '0.45', '0.46', '0.47', '0.48', '0.49', '0.50', '0.51', '0.52', '0.53', '0.54', '0.55', '0.56', '0.57', '0.58', '0.59', '0.60', '0.61', '0.62', '0.63', '0.64', '-1.4', '0.65', '0.66', '0.67', '0.68', '0.69', '0.70', '0.71', '0.72', '0.73', '0.74', '0.75', '0.76', '0.77', '-1.5', '0.78', '0.79', '0.80', '0.81', '0.82', '0.83', '0.84', '0.85', '0.86', '0.87', '0.88', '0.89', '0.90', '0.91', '0.92', '0.93', '0.94', '0.95', '0.96', '0.97', '0.98', '0.99', '0.100', '0.101', '0.102']
感谢您的任何建议
回答:
许多Python的机器学习库原生支持DataFrame,因此对于这些库,您可以直接传递整个DataFrame:
from sklearn.linear_model import LogisticRegressionX = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})y = pd.Series([0, 1, 0])model = LogisticRegression()model.fit(X, y)print(model.coef_)[[-1.87654483e-05 7.42492539e-05]]
我看到您标记了TensorFlow – 对于TensorFlow,您可以使用tf.data.Dataset.from_tensor_slices
构建数据集:
import tensorflow as tfdataset = tf.data.Dataset.from_tensor_slices((X.values, y.values))