我正在使用sklearn,特别是linear_model模块.在拟合简单的线性之后
import pandas as pd
import numpy as np
from sklearn import linear_model
randn = np.random.randn
X = pd.DataFrame(randn(10,3), columns=['X1','X2','X3'])
y = pd.DataFrame(randn(10,1), columns=['Y'])
model = linear_model.LinearRegression()
model.fit(X=X, y=y)
Run Code Online (Sandbox Code Playgroud)
我看到我如何通过coef_和intercept_访问系数和截距,预测也很简单.我想访问这个简单模型的参数的方差 - 协方差矩阵,以及这些参数的标准误差.我熟悉R和vcov()函数,似乎scipy.optimize有一些功能(使用python中的optimize.leastsq方法获取拟合参数的标准错误) - sklearn是否具有访问这些统计信息的任何功能??
感谢任何帮助.
-Ryan
我的目标是分配现有二维数组的值,或创建一个新数组,使用两个形状相同的二维数组,一个包含值,另一个包含索引以分配相应的值。
X = np.array([range(5),range(5)])
X
array([[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]])
Y= np.array([range(5), [2,3,4,1,0]])
Y
array([[0, 1, 2, 3, 4],
[2, 3, 4, 1, 0]])
Run Code Online (Sandbox Code Playgroud)
我想要的输出是与 X 和 Y 形状相同的数组,X 的值在 Y 中相应行的索引中给出。可以通过按以下方式循环每一行来实现此结果:
output = np.zeros(X.shape)
for i in range(X.shape[0]):
output[i][Y[i]] = X[i]
output
array([[ 0., 1., 2., 3., 4.],
[ 4., 3., 0., 1., 2.]])
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法来应用此类作业?
np.take(output, Y)
Run Code Online (Sandbox Code Playgroud)
将返回输出数组中我想分配给 X 的值的项目,但我相信 np.take 不会生成对原始数组的引用,而是生成一个新数组。
我想在R中创建一个列,它只是另一列的所有先前值的平均值.例如:
D
X
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
Run Code Online (Sandbox Code Playgroud)
我希望D $ Y是D $ X的先前平均值,即D $ Y是之前所有D $ X观测值的平均值.我知道如何使用for循环移动每一行来做到这一点,但是有更高效的方式吗?
我有一个大型数据集和硬件不能胜任该任务!
谢谢Ryan
python ×2
arrays ×1
indexing ×1
numpy ×1
performance ×1
r ×1
scikit-learn ×1
sorting ×1
variance ×1