用于Python中逻辑回归和KNN模型的输入格式

在我的训练集中,我有24个特征向量(FV)。每个FV包含两个列表。当我尝试在model = LogisticRegression()model = KNeighborsClassifier(n_neighbors=k)上拟合数据时,我得到了这个错误ValueError: setting an array element with a sequence.

在我的数据框中,每一行代表一个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是如何处理输入数据的?我理解逻辑回归是使用权重或系数值线性组合输入的。但我不确定这在列表和数据框列之间意味着什么。这是否意味着它会自动将数据框列的对应值转换为列表再进行转换?方法1和方法2之间有什么区别吗?

此外,如果需要一个长列表,我应该使用[HR,HR,HR,ACT,ACT,ACT]还是[HR,ACT,HR,ACT,HR,ACT]的格式?


回答:

你应该选择2

展开两个列表,使每个列代表一个值。换句话说,如果一个FV中的HR和ACT数据有5个项目,那么新的数据框将有10列用于特征,1列用于目标。

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

Sklearn的模型接受以下形状的输入[n_samples, n_features],并且在采用你提出的第二个解决方案后,你的训练数据框将具有2D形状[n_samples, 10]。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注