预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

使用Python进行数据分析——模型开发我们经常使用模型开发来帮助我们预测未来的观测数据。一个模型将帮助我们理解不同变量之间的确切关系,以及如何使用这些变量来预测结果。设置导包:iaportpandasaspdi*portnumpyasnpimportmatplotlib.pyplotaspit加载数据并存储在数据帧df中:path='.us-geo.objectstorage,sof11ayer.net/cf-courses-data/CognitiveC1ass/DAO1011df=pd.read_csv(path)df.head()normalized-symbohng(ossesmakeaspirationnum-of-doorsbodystyledrivewheelsenginelocationwheelbaseidcomlength...03122atfa-romerostdtwoconvertiblerwdfront88.60.811148...13122atfa-romerostdtv/oconvertiblerv/dfront88.60811148...21122atfa-romerostdtwohatchbackrwdfront94.50.822681...32164audistdfoursedanfwdfront99.80.848630...42164audistdfoursedan4wdfront99.40.848630...5rowsx29columns<11•线性回归和多元线性回归线性回归我们将使用的数据模型的一个例子是简单线性回归20000这个图告诉了我们什么?从这个残差图中我们可以看出残差并不是随机分布在X轴上的,这使得我们认为也许非线性模型更适合这个数据。多元线性回归我们如何可视化一个多元线性回归模型?这就有点复杂了,因为你无法用回归图或残差图来表示它。查看模型的一种方法是查看分布图:我们可以查看模型得出的拟合值的分布,并将其与实际值的分布进行比较。首先让我们做一个预测Y_hat=Im.predict(Z)pit.figure(figsize=(width,height))axl=sns.distplot(df[price],hist=False,color="r”,label=wActualValue")sns.distplot(Yhat,hist=False,color="b”,label='FittedValues”,ax=axl)pit.title(5ActualvsFittedValuesforPrice')pit.xlabel('Price(indollars))pit.ylabel(*ProportionofCars')pit.show()•:已无成之元pit.close()ActualvsFittedValuesforPnce000008000008000007000006000005000004000003000002000001ActualValueFittedValuesjoUQgdoJd-10000loooo300004000020000Pnce(indollars)我们可以看到,拟合值与实际值相当接近,因为这两个分布有一些重叠。但是,肯定还有改进的余地。3.多项式回归与管道多项式回归是一般线性回归模型或多元线性回归模型的特例。我们通过平方或设置自变量的高阶项来得到非线性关系。多项式回归有不同的阶数:Quadratic-2ndorderYhat=a+b\X2+b2X2Cubic-3rdorderYhal=d+/>|X2+与+如X'Higherorder:Y=a+b[X2^b2X2+b3X3..../我们在前面己经看到,当使用highway-mpg作为预测变量时,线性模型并不能提供最佳的拟合。让我们看看是否可以试着用多项式模型来拟合数据。我们将使用以下函数来绘制数据:defPlotPolly(model,independent_variab1e,dependent_variabble,Name):x_new=np.linspace(15,55,100)y_new=model(x_new)pit.plot(independent_variable,dependent_variabb1e,'.',x_new,y_new,pit.titleCPolynomialFitwithMatplotlibforPrice~Length*)ax=pit.gca()ax.set_facecolor((0.898,0.898,0.898))fig=pit.gcf0pit.xlabel(Name)pit.ylabelCPriceofCars')pit.show()pit.close()让