将Pandas数据帧转换为数组并计算多元线性回归模型

2024-05-29 06:00:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图评估一个多元线性回归模型。我有这样的数据集:

enter image description here

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

我需要从文章中预测基本事实的价值。我将在金刚烷胺金刚烷胺之间添加我的多篇线性模型7文章。

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

from sklearn.linear_model import LinearRegression
X = [[6, 2], [8, 1], [10, 0], [14, 2], [18, 0]] // need to modify for my problem
y = [[7],[9],[13],[17.5], [18]] // need to modify
model = LinearRegression()
model.fit(X, y)

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

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

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

如有任何帮助,我们将不胜感激。


Tags: to数据代码from模型model文章线性
2条回答
y = broken_df.ground_truth.values
X = broken_df.drop('ground_truth', axis=1).values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
linreg = LinearRegression()
linreg.fit(X_train, y_train)
y_pred = linreg.predict(X_test)
print(linreg.score(X_test, y_test)
print(classification_report(y_test, y_pred))

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

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

下面是一些随机生成的数据的示例:

import numpy as np
#create a 5X5 dataframe
df = 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返回熊猫的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

相关问题 更多 >

    热门问题