如何打印3列表(索引,协方差矩阵,均方误差)?
from sklearn import linear_model # Machine Learning tool
import numpy as np # Mathematics and Linear Algebra tool
import pandas as pd # data structure tool
import matplotlib.pyplot as plt # scientific plotting tool
import seaborn as sns # # scientific plotting tool
%matplotlib inline
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error
diabetes = datasets.load_diabetes() # Load the diabetes dataset
n = 10 # 10 datasets for analysis
y_train = diabetes.target[:-20]
y_test = diabetes.target[-20:]
MSE = np.empty([n,1]) # mean square error
COV = [None] * n # covariance
regr = [None] * n
table= [None] * n
for i in range(n):
x = diabetes.data[:, np.newaxis, i] # select feature from dataset
x_train = x[:-20]
x_test = x[-20:]
regr[i] = linear_model.LinearRegression()
regr[i].fit(x_train, y_train)
y_predict = regr[i].predict(x_test)
MSE[i] = mean_squared_error(y_predict, y_test)
COV[i] = np.cov(x_train.T, np.reshape(y_train,[422,1]).T)
table[i] = [i, MSE[i], COV[i]]
print(table[i])
矩阵table
包含所有必要的内容。但是我如何调整它以使其可以理解?不需要闪亮的LaTeX,但可以使用。
答案 0 :(得分:1)
改为使用pandas.DataFrame():
import pandas as pd
df = pd.DataFrame()
a=range(10)
b=range(10,20)
c=range(20,30)
df['a']=a
df['b']=b
df['c']=c
df
a b c
0 0 10 20
1 1 11 21
2 2 12 22
3 3 13 23
4 4 14 24
5 5 15 25
6 6 16 26
7 7 17 27
8 8 18 28
9 9 19 29
或者一下子:
df = pd.DataFrame({'a': a, 'b': b, 'c': c})
df
a b c
0 0 10 20
1 1 11 21
2 2 12 22
3 3 13 23
4 4 14 24
5 5 15 25
6 6 16 26
7 7 17 27
8 8 18 28
9 9 19 29