线性回归练习

@

线性回归练习

练习要求:
(创建父母子女身高数据集)

  1. 选取父子身高数据为X-Y,用Excel计算线性回归方程和相关系数、方差、p值等,判断回归方程是否成立。 现在如果有一个新家庭的数据,已知父亲身高75英寸,请测算儿子的身高为多少?
  2. 选取母子身高数据为X-Y,用Excel计算线性回归方程和相关系数、方差、p值等,判断回归方程是否成立。
  3. 根据以上数据,阐明你对习俗说法是否正确的分析。
  4. 你能用多元线性回归方法,计算出父亲、母亲与儿子身高的回归方程吗?

表格如下:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320131750358.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
数据分析前需要,需要添加新的加载项,步骤如下:
1.点击excel中的文件,选项
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320131944329.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
2.添加分析工具库即可![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320132036850.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
现在开始数据分析,点击回归
![在这里插入图片描述]( https://img-blog.csdnimg.cn/2021032013212856.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/2021032013221019.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
选择好区间
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320132415459.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320132519134.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

母子身高线性回归分析

步骤同父子身高回归分析一样,得到数据如下
![在这里插入图片描述]( https://img-blog.csdnimg.cn/2021032013271277.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

线性回归分析

线性回归分析,选择全部数据,插入图表,散点图,快速布局选择回归方程,得到如下数据
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320133119153.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320133145960.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/2021032013341365.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
经过分析,线性回归方程成立。
母子升高线性分析同理:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320133602145.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320133720769.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

线性回归方法的有效性判别

针对“Anscombe四重奏”数据集,用excel对四组数据进行线性回归分析,判断其中哪些回归方程是成立的,哪些不成立?不成立的应该如何解决?
数据集1:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320134145925.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
线性回归分析:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320134733697.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

线性回归方程:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320134607253.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
线性回归方程成立。
数据集2
线性回归分析
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320134826107.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
线性回归方程:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320134924365.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
该线性回归方程不成立,从散点图看出应当为二元方程。
数据集3
线性回归分析:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320135023274.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

线性回归方程:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320135056100.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
该线性回归方程不成立。
数据集4
线性回归分析:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/2021032013514069.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)

线性回归方程:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320135202755.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
该线性回归方程不成立。

安装python3.6/3.7、Anaconda 和 jupyter、spyder软件,对鸢尾花Iris数据集进行SVM线性分类练习

创建一个名为 exam1的虚拟环境,在虚拟环境下安装 numpy、pandas、sklearn包。 按照课件上的代码例子(参看群文件“支持向量机-课件(鸢尾花示例代码).docx”),对鸢尾花Iris数据集进行SVM线性分类练习。

安装Anaconda 和jupyter、spyder

下载和安装过程就不一一讲解了,参考博客:博客

安装第三方包,打开Ananconda Prompt,输入pip install requests
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320141307889.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
配置环境
打开控制台,输入conda create -n exam1 python=3.7,中间选择yes
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320141416489.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
创建成功:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320141616819.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
安装 numpy、pandas、sklearn 包

pip install numpy -i "https://pypi.doubanio.com/simple/"
pip install pandas -i "https://pypi.doubanio.com/simple/"
pip install sklearn -i "https://pypi.doubanio.com/simple/"

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320141716106.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
安装完成。

SVM数据分析

打开 Jupyter Notebook,网页nem下面选择python
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320141941623.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
在弹出的代码框中写下代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC

iris = datasets.load_iris()
X = iris.data
y = iris.target

X = X [y<2,:2] # 只取y<2的类别,也就是0 1 并且只取前两个特征
y = y[y<2] # 只取y<2的类别

# 分别画出类别 0 和 1 的点
plt.scatter(X[y==0,0],X[y==0,1],color='red')
plt.scatter(X[y==1,0],X[y==1,1],color='blue')
plt.show()

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320142111243.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)点击运行,得到以下结果:![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320142233250.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
标准化训练模型:

# 标准化
standardScaler = StandardScaler()
standardScaler.fit(X)

# 计算训练数据的均值和方差
X_standard = standardScaler.transform(X) # 再用 scaler 中的均值和方差来转换 X ,使 X 标准化
svc = LinearSVC(C=1e9) # 线性 SVM 分类器
svc.fit(X_standard,y) # 训练svm

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320142321534.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
其中 C 值是控制正则项的重要程度,C 值越小,容错空间越大
绘制决策边界

from matplotlib.colors import ListedColormap # 导入 ListedColormap 包


def plot_decision_boundary(model, axis): 
	x0, x1 = np.meshgrid( np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1,1),
                         np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1,1)
                        )    
	X_new = np.c_[x0.ravel(), x1.ravel()] 
	y_predict = model.predict(X_new) 
	zz = y_predict.reshape(x0.shape) 
	custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9']) 
	plt.contourf(x0, x1, zz, cmap=custom_cmap) #绘制决策边界     
    
plot_decision_boundary(svc,axis=[-3,3,-3,3]) # x,y轴都在-3到3之间 

# 绘制原始数据
plt.scatter(X_standard[y==0,0],X_standard[y==0,1],color='red') 
plt.scatter(X_standard[y==1,0],X_standard[y==1,1],color='blue') 
plt.show()

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320142412612.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
设置C值,在上面代码添加如下代码

svc2 = LinearSVC(C=0.01)
svc2.fit(X_standard,y)
plot_decision_boundary(svc2,axis=[-3,3,-3,3]) # x,y轴都在-3到3之间
# 绘制原始数据
plt.scatter(X_standard[y==0,0],X_standard[y==0,1],color='red')
plt.scatter(X_standard[y==1,0],X_standard[y==1,1],color='blue')
plt.show()

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210320142504982.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTMxMzI3,size_16,color_FFFFFF,t_70)
当 C 值变小后,容错性增大。
其他函数参考。

posted @ 2021-07-09 23:28  秋刀鱼和你  阅读(322)  评论(0)    收藏  举报