数据的回归与分类分析

本文通过线性回归分析了“父母子女身高”数据集,发现父子间身高存在相关性,而母子间相关性较弱。接着对Anscombe四重奏数据集进行了线性回归分析,揭示了不同数据集的回归方程适用性。最后,通过SVM对鸢尾花数据集进行了线性分类练习,展示了如何在Python环境中进行数据分析和模型训练。
摘要由CSDN通过智能技术生成

对“父母子女身高”数据集进行线性回归分析

线性回归练习。“父亲高则儿子高,父亲矮则儿子矮”(即父亲与儿子身高相关,且为正相关)、“母高高一窝,父高高一个”(即母亲的身高比父亲的身高对子女的影响更大)的习俗传说是否成立?请在“父母子女身高”数据集(高尔顿数据集)基础上利用线性回归做出科学分析。
1)选取父子身高数据为X-Y,用Excel计算线性回归方程和相关系数、方差、p值等,判断回归方程是否成立。 现在如果有一个新家庭的数据,已知父亲身高75英寸,请测算儿子的身高为多少?
2)选取母子身高数据为X-Y,用Excel计算线性回归方程和相关系数、方差、p值等,判断回归方程是否成立。
3)根据以上数据,阐明你对习俗说法是否正确的分析。
4)你能用多元线性回归方法,计算出父亲、母亲与儿子身高的回归方程吗?

  1. 首先激活Excel的分析工具
    在这里插入图片描述
    在这里插入图片描述

  2. 开启筛选,去除子女性别栏中的女性,留选男性
    在这里插入图片描述

  3. 设置数据分析配置
    在这里插入图片描述
    选儿子身高为Y值输入区域,父亲身高为X值输入区域
    在这里插入图片描述

  4. 得到结果
    在这里插入图片描述

  5. 数据分析
    通过公式
    在这里插入图片描述
    根据父亲的升高75英寸,能算出儿子的身高为68.97英寸

  6. 通过以上同样的方式算出母亲与儿子升高的回归方程
    在这里插入图片描述
    可以看到R²=0.0097,相关性几乎为零,所以模型的回归方程是不成立的

  7. 总结
    综上所述呢,父子之间身高有一定的相关性,而母子之间的相关性不太强,所以这两句俗语不太正确。

针对“Anscombe四重奏”数据集,用excel对四组数据进行线性回归分析,判断其中哪些回归方程是成立的,哪些不成立?不成立的应该如何解决?

  1. 第一组数据
    在这里插入图片描述
    数据有限的情况下这组数据有规律的分布在预测直线的上下,并不是很能说明这组数据符合线性回归。
  2. 第二组数据
    在这里插入图片描述
    明显的看出原数据是一个二次函数的分布,所以不成立。
  3. 第三组数据
    在这里插入图片描述
    大致趋势跟预测值都差不多,因为一两个点的偏移,造成了预测值的斜率增加,大致是符合线性回归的。
  4. 第四组数据
    在这里插入图片描述
    这条直线完全不能拟合数据集,不成立。

对鸢尾花Iris数据集进行SVM线性分类练习

  1. 安装Anaconda
    Anaconda3-2020.02-Windows-x86_64安装及使用步骤

  2. 创建虚拟环境
    在这里插入图片描述

  3. 然后安装 numpy、pandas、sklearn、matplotlib包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

在这里插入图片描述

  1. 线性分离
    打开打开Jupyter Notebook,写入以下代码
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的类别

# 分别画出类别 01 的点
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()

在这里插入图片描述
加入下列代码

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

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

在这里插入图片描述
在最开始导入包,然后在刚刚代码最下方黏贴以下代码

from matplotlib.colors import ListedColormap # 导入 ListedColormap 包


def plot_decision_boundary(model, axis): 
	x0, x1 = np.meshgrid( np.linspace(axis[0], axis[1], <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值