python-3.x - 适用于 Python 的逻辑回归和 KNN 等模型的输入格式

标签 python-3.x machine-learning scikit-learn time-series classification

在我的训练集中,我有 24 个特征向量 (FV)。每个 FV 包含 2 个列表。当我尝试将其适合 model = LogisticRegression()model = KNeighborsClassifier(n_neighbors=k) 时,我收到此错误 ValueError: 设置带有 a 的数组元素序列。

在我的数据框中,每一行代表每个 FV。有 3 列。第一列包含个人心率列表,第二列包含相应事件数据的列表,第三列包含目标。从视觉上看,它看起来像这样:

HR                         ACT                      Target
[0.5018, 0.5106, 0.4872]  [0.1390, 0.1709, 0.0886]  1
[0.4931, 0.5171, 0.5514]  [0.2423, 0.2795, 0.2232]  0

我应该:

  1. 将两个列表连接起来形成长 FV
  2. 展开两个列表,使每一列代表一个值。换句话说,如果 FV 的 HR 和 ACT 数据中有 5 个项目,则新数据框将有 10 列用于特征,1 列用于目标。

逻辑回归和 KNN 如何处理输入数据?据我了解,逻辑回归使用权重或系数值线性组合输入。但我不确定这对于列表 VS 数据框列意味着什么。这是否意味着它在转换之前会自动将数据帧列的相应值转换为列表?方法1和方法2有区别吗?

此外,如果需要长列表,我应该将长列表设置为 [HR,HR,HR,ACT,ACT,ACT][HR,ACT,HR, ACT,HR,ACT]

最佳答案

你应该选择2

Expand both lists such that each column represents one value. In other words, if there are 5 items in HR and ACT data for a FV, the new dataframe would have 10 columns for features and 1 for Target.

然后,您应该从数据框中选择特征列,并将其作为 X 传递,将目标列作为 Y 传递给模型的 fit 函数。

Sklearn 的模型接受具有以下形状 [n_samples, n_features] 的输入,并且由于遵循您提出的第二个解决方案后,您的训练数据帧将具有形状 [n_samples, 10] 的 2D。

关于python-3.x - 适用于 Python 的逻辑回归和 KNN 等模型的输入格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739556/

相关文章:

python - 值错误: could not convert string to float: '1,141'

python - sklearn : how to make fit and transform a feature selector in a GridSearchCV

python - sklearn DecisionTreeClassifier 使用应被视为分类的字符串

python - 将 2 列类似计数器的 csv 文件转换为 Python collections.Counter?

python - Ansible:playbook 未与 python3 一起运行

python - 无法使用请求从网页获取所有表格内容

image - 我们可以使用经过图像分类训练的模型来帮助 tensorflow 中的对象检测吗?

python-3.x - 如何使用 cv2.CascadeClassifier 修复 openCV 错误?

python-2.7 - 我可以给 theano 中的给定提供一个元组或列表吗

machine-learning - 根据相似性(相等性)对独特的数据集进行聚类