将Pandas数据框转换为数组并评估多元线性回归模型

我正在尝试评估一个多元线性回归模型。我有一个如下所示的数据集:

enter image description here

这个数据集有157行 * 54列。

我需要从文章中预测ground_truth值。我将在en_Amantadineen_Common之间添加我的多元线性模型的7篇文章。

我有用于多元线性回归的代码:

from sklearn.linear_model import LinearRegressionX = [[6, 2], [8, 1], [10, 0], [14, 2], [18, 0]] // 需要为我的问题修改y = [[7],[9],[13],[17.5], [18]] // 需要修改model = LinearRegression()model.fit(X, y)

我的问题是,我无法从我的DataFrame中提取Xy变量的数据。在我的代码中,X应该是这样的:

X = [[4984, 94, 2837, 857, 356, 1678, 29901],     [4428, 101, 4245, 906, 477, 2313, 34176],      ....     ]y = [[3.135999], [2.53356] ....]

我无法将DataFrame转换为这种类型的结构。我该怎么做?

任何帮助都将不胜感激。


回答:

您可以使用as_matrix方法直接在数据框对象上将其转换为矩阵。您可能需要指定您感兴趣的列,例如X=df[['x1','x2','X3']].as_matrix(),其中不同的x是列名。

对于y变量,您可以使用y = df['ground_truth'].values来获取一个数组。

这里有一个使用随机生成数据的示例:

import numpy as np#create a 5X5 dataframedf = pd.DataFrame(np.random.random_integers(0, 100, (5, 5)), columns = ['X1','X2','X3','X4','y'])

df上调用as_matrix()会返回一个numpy.ndarray对象

X = df[['X1','X2','X3','X4']].as_matrix()

调用values会从pandas的series返回一个numpy.ndarray

y =df['y'].values

注意:您可能会收到一个警告,说:FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.

要解决这个问题,请使用values代替as_matrix,如下所示

X = df[['X1','X2','X3','X4']].values

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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