import numpy as np import matplotlib.pyplot as plt import pandas as pd w = pd.read_csv('BostonHousing2.csv') w_new=w.drop(columns=["chas"],axis=1) wn0 = w_new.columns wn = wn0[5:] f = plt.figure(figsize=(16,8)) k=0 for i in range(len(wn)): for j in range(len(wn)): k=k+1 if i!=j: f.add_subplot(len(wn),len(wn),k) else: f.add_subplot(len(wn),len(wn),k) plt.scatter([0,1],[0,1]) plt.text(.5,.5,wn[i],\ ha='center',va='center',size=10) y=np.array(w[wn[0]])[:,np.newaxis] X=np.array(w[wn[1:]]) from sklearn import linear_model regr=linear_model.LinearRegression(fit_intercept=False) regr.fit(X,y) print(regr.coef_) res=y-regr.predict(X) import scipy.stats as stats import pylab res.shape=res.shape[0] f=plt.figure(figsize=(12,5)) f.add_subplot(121) plt.scatter(regr.predict(X),res) plt.plot(regr.predict(X),np.ones(len(y))) plt.xlabel('Fitted values') plt.ylabel('Residuals') f.add_subplot(122) stats.probplot(res,dist="norm",plot=pylab) plt.show() from sklearn.tree import DecisionTreeRegressor from sklearn import tree import graphviz regr2 =DecisionTreeRegressor(max_depth=4,random_state=100) regr2 = regr2.fit(X,y) dot_data=tree.export_graphviz(regr2,feature_names=wn[1:],out_file=None) graph=graphviz.Source(dot_data) f=plt.figure(figsize=(12,5)) f.add_subplot(111) height=regr2.feature_importances_ bars = wn[1:] y_pos=np.arange(len(bars)) plt.bar(y_pos,height) plt.xticks(y_pos,bars) plt.yticks() plt.show() 分析上述代码的运行结果
时间: 2024-04-19 22:23:48 浏览: 59
python数据分析与可视化 import pandas as pd import numpy as np import m
这段代码的运行结果将显示出多个图表和一些数字输出。
首先,代码中的循环将生成一个图表,该图表的每个子图都是特征与特征之间的散点图。这些散点图中,特征与自身的散点图上会显示特征的名称。
接下来,代码计算了线性回归模型的系数(coef_),并将预测值与实际值之间的残差保存在变量res中。然后,它绘制了两个子图:左边的子图显示了预测值与残差之间的散点图,并画出了一条水平线表示残差为1的边界;右边的子图是正态概率图,用于检验残差是否符合正态分布。
接下来,代码使用决策树回归模型进行拟合,并使用graphviz库将决策树可视化为一个图形。这部分代码将生成一个决策树模型的可视化结果。
最后,代码绘制了一个柱状图,显示了特征的重要性。柱状图的x轴是特征的名称,y轴是特征的重要性值。
请注意,以上结果是根据'BostonHousing2.csv'文件和特定参数设置得出的。如果你使用不同的数据集或参数,可能会得到不同的结果。
阅读全文