在 Jupyter Notebook 中打印 table
Printing table in Jupyter Notebook
如何打印具有 3 列(索引、协方差矩阵、均方误差)的 table?
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,但可以使用。
改用 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
如何打印具有 3 列(索引、协方差矩阵、均方误差)的 table?
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,但可以使用。
改用 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