第二十六天-统计与机器学习SciPy,Scikit-Leaen

目录

1.介绍

2.使用scipy

1. 安装

2.拟合曲线

3.随机变量与概率分布

4.假设检验

5.参数检验

3.使用Scikit-Learn

1. 机器学习库,建立在numpy,scipy,matplotlib基础上

2.包含功能

3.安装

1.官网:https://scikit-learn.org

2.下载

3.线性回归模型

4.归一化

5.标准化

6.OneHot独热编码

7.非监督学习-聚类算法K-Means

8.监督学习-KNN算法

9.监督学习-回归模型-多元线性回归模型


1.介绍

1.应用库基础关系

2..scipy是用于统计函数:如矩阵运算,参数优化,假设检验

3.Scikit-Learn回归算法:监督学习、分类算法、回归算法

4.Scikit-learn聚类算法:非监督学习,特征聚类分群

4.scipy官网:SciPy -

2.使用scipy

1. 安装

pip install scipy

import scipy

2.拟合曲线

# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize# 创建e方程= a*e^(-b*x)+c
def y(x, a, b, c):return a * np.exp(-b * x) + cxdata = np.linspace(0, 4, 50)
ydata = y(xdata, 2.5, 1.3, 0.5)
ydata_noise = ydata + 0.5 * np.random.randn(xdata.size)
print(xdata)
print(ydata)plt.plot(xdata, ydata_noise)
# 生成拟合曲线
params, pcov = scipy.optimize.curve_fit(y, xdata, ydata)
plt.plot(xdata,y(xdata,*params))plt.show()

3.随机变量与概率分布

1. 统计学的应用价值

  • 应用数学的一个分支
  • 利用概率论建立数学模型,收集所2观察系统的数据
  • 进行量化分析,总结,进而进行推断和预测
  • 为相关决策提供依据和参考 

2.什么是随机变量

  • 观察数据样本:1.具有不确定性和随机性 2.落在某一个范围的概率是一定的

3.什么是概率分布

  • 随机变量取值的概率:某件事的概率,就是这件事在当前样本或者说实验中出现的次数,出现的可能性的意思

4.概率分布值正态分布:

  一般为中间高2边低成为正态分布,可以确立正常的取值范围

# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st
import seaborn as sns#创建随机变量,设置size,设置loc期望值,设置scale方差
rvs1=st.norm.rvs(0,1,100)#改的方差缓存变化
rvs2=st.norm.rvs(0,2,100)
rvs3=st.norm.rvs(0,3,100)#绘制分布图
for i in [rvs1,rvs2,rvs3]:sns.distplot(i)
#设置lable
plt.legend(labels=["1","2","3"])plt.show()

4.假设检验

1.什么是统计推断

  • 通过样本推断总体的一种统计方法
  • 通过概率分布的数量特征(如期望和方差)来反映22
  • 对总体的位置参数进行估计
  • 对于参数的假设进行检查
  • 对总体进行预测预报等

2.什么是假设检验

  • 判断样本与样本、样本与总体的差异
  • 是由”抽样误差”引起的还是“本质差别”照成的统计推断方法

如:

3.显著性检验

  • 通过对总体的特征,做出某种假设,并进行抽样研究的统计推理方法
  • 最终基于出现概率的大小,并判断接受或者拒绝某种假设

如:

# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st
import seaborn as sns
import matplotlib as mplmpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号#设置样本的概率分布
#整体样本
mean0=72
#有效样本数量
mean1=68
#方差0.8
std1=0.8
rvs0=st.norm.rvs(mean0,1,1000)
rvs1=st.norm.rvs(mean1,std1,1000)for i in [rvs0,rvs1]:sns.distplot(i)#置信区间:总体概率为95%#设置lable
plt.legend(labels=["72样本","68样本"])plt.show()

5.参数检验

1.置信区间:总体概率为95%

2.样本差异性比较:stats.ks_2samp(样本1,样本2,"类型")

3.使用Scikit-Learn

1. 机器学习库,建立在numpy,scipy,matplotlib基础上

2.包含功能

3.安装

1.官网:https://scikit-learn.org

2.下载

pip install scikit-learn

3.线性回归模型

# coding:utf-8import pandas as pd
import numpy as np
import sklearn as sk
from sklearn import datasets
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt# 导入波士顿房价数据
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep=r"\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
# 人口中地位较低的百分比
target = raw_df.values[1::2, 2]
# print("data=====",data)
print("target======", target)
# 样本数据
# print(data.shape)house = pd.DataFrame(data)
house.columns = ["城市的人均犯罪率", " 25,000英尺以上的住房占的比例", "每个城镇的非零售商业英亩的比例", "如果靠近河岸","环保指数", "每个住宅的平均房间数", "自住比例", "就业中心距离","到公路的可达指数", "物业税", "学生教师比例", "黑人比例", "人口中地位较低的百分比"]
print(house)
# 使用回归线性模型 y=w*x +bmod = LinearRegression()  # 确定要调用的模型
x = data[:, np.newaxis, 5]  # 房间数
y = target  #
mod.fit(x, y)
# 相关性指数 0-1
print("相关性指数:", mod.score(x, y))
print("回归系数coef_:", mod.coef_)
print("回归系数intercept_:", mod.intercept_)# 绘制样本
plt.scatter(x, y)
plt.plot(x, mod.predict(x), color="red")plt.show()

4.归一化

1.数据归一化的作用是为了降低数据差异,将数据的取值范围设置在0-1

# coding:utf-8import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib as mpl
import sklearn as sk
import matplotlib.pyplot as plt
from sklearn import preprocessing as prepmpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号fig, ax = plt.subplots(2, 2)
# 创建随机样本
data = pd.DataFrame({"a": np.random.exponential(3, 1000),  # a数据为 3的方差,生成1000个数字"b": np.random.normal(-5, 0.5, 1000),  # b数据为以-5位中心,0.5的方差,生成1000个数字"c": np.random.normal(0, 4, 1000)  # 以0位为中心,4的方差,生成1000个数字
})
print("数据样本:", data.describe())
# 原始数据 则线图
sns.lineplot(data, ax=ax[0, 0])
ax[0, 0].set_title("原始数据-折线图")# 分布图
sns.distplot(data["a"], ax=ax[0, 1])
sns.distplot(data["b"], ax=ax[0, 1])
sns.distplot(data["c"], ax=ax[0, 1])
ax[0, 1].set_title("原始数据-分布图")# 数据归一化的作用是为了降低数据差异,将数据的取值范围设置在0-1
# 归一化模型 算法:X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
scaler1 = prep.MinMaxScaler()
scaler1.fit(data)minMax1 = pd.DataFrame(scaler1.transform(data), columns=["a", "b", "c"])sns.lineplot(data=minMax1, ax=ax[1, 0])
ax[1, 0].set_title("归一化-折线图")sns.distplot(minMax1["a"], ax=ax[1, 1])
sns.distplot(minMax1["b"], ax=ax[1, 1])
sns.distplot(minMax1["c"], ax=ax[1, 1])
ax[1, 1].set_title("归一化-分布图")# 设置间距,避免名称重叠
fig.tight_layout()plt.show()

5.标准化

 数据标准化, 将数据转换为0为均值,1位方差
# coding:utf-8import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib as mpl
import sklearn as sk
import matplotlib.pyplot as plt
from sklearn import preprocessing as prepmpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号fig, ax = plt.subplots(2, 2)
# 创建随机样本
data = pd.DataFrame({"a": np.random.exponential(3, 1000),  # a数据为 3的方差,生成1000个数字"b": np.random.normal(-5, 0.5, 1000),  # b数据为以-5位中心,0.5的方差,生成1000个数字"c": np.random.normal(0, 4, 1000)  # 以0位为中心,4的方差,生成1000个数字
})
print("数据样本:", data.describe())
# 原始数据 则线图
sns.lineplot(data, ax=ax[0, 0])
ax[0, 0].set_title("原始数据-折线图")# 分布图
sns.distplot(data["a"], ax=ax[0, 1])
sns.distplot(data["b"], ax=ax[0, 1])
sns.distplot(data["c"], ax=ax[0, 1])
ax[0, 1].set_title("原始数据-分布图")# 数据标准化, 将数据转换为0为均值,1位方差
scaler1 = prep.StandardScaler()
scaler1.fit(data)minMax1 = pd.DataFrame(scaler1.transform(data), columns=["a", "b", "c"])sns.lineplot(data=minMax1, ax=ax[1, 0])
ax[1, 0].set_title("标准化-折线图")sns.distplot(minMax1["a"], ax=ax[1, 1])
sns.distplot(minMax1["b"], ax=ax[1, 1])
sns.distplot(minMax1["c"], ax=ax[1, 1])
ax[1, 1].set_title("标准化-分布图")# 设置间距,避免名称重叠
fig.tight_layout()plt.show()

6.OneHot独热编码

1. 自然编码vs独热编码

独热编码是以0和1表示的,将特定类特征的转换为二进制

比如:性别:男、女 以编码标识为 1,0  独热编码为 男:[1,0] 女[0,1]

再比如:胜平负 1胜利 2平 3负 独热编码为 胜:[1,0,0] 平:[0,1,0]  负:[0,0,1]

from sklearn import preprocessing as prep
import pandas as pdsex = ["f", "m"]
spf = ["s", "p"]
zhiffs = ["x", "z"]df = pd.DataFrame([sex,spf,zhiffs])
# 创建模型》fit训练数据》transform显示数据》.attribute打印数据
oneHot = prep.OneHotEncoder(sparse_output=False,handle_unknown='ignore')
oneHot.fit(df)
print(oneHot.transform([["f","m"]]))

out:

[[1. 0. 0. 1. 0. 0.]]

7.非监督学习-聚类算法K-Means

8.监督学习-KNN算法

9.监督学习-回归模型-多元线性回归模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文掌握python函数式编程及应用实例(超详细及超多应用实例)(二)

一.命名空间和作用域: Python 的命名空间和作用域是两个密切相关的概念,它们共同决定了变量的可见性、生命周期以及如何在程序中查找变量。 a.命名空间(Namespace) 命名空间 是一个存储变量名称及其对应值的地方。在 Python 中,每个模块、函数或类都有其自己的命名空间…

STM32 ADC库函数

单片机学习! 目录 1. RCC_ADCCLKConfig 函数 2. ADC_DeInit 函数 3. ADC_Init 函数 4. ADC_StructInit 函数 5. ADC_Cmd 函数 6. ADC_DMACmd 函数 7. ADC_ITConfig 函数 8. 用于校准的函数 8.1 ADC_ResetCalibration 函数 8.2 ADC_GetResetCalibrationSta…

【Java扫盲篇】==和equals的区别

这是一道面试经典题,面试官对你说:小伙子,请你说说和equals的区别 对于来说 如果比较的是基本数据类型,那么比较的是数据的值是否相同。注意:(与数据类型无关) int a 10;int b 10;System.out…

数据库系统概念(第二周 第二堂)(关系模型)

目录 回顾 关系模型 历史与现状 组成成分 数据结构——关系 关系定义 关系性质 关系和关系模式 难点概念理解 关系属性的分类 一、超码(superkey) 二、候选码(candidate key) 三、主码(primary key&#…

Catmull-Rom P5 ThreeJs与前端

文章目录 问题Echarts 3D如何让曲线变得平滑?Echarts 2D图中平滑效果是如何实现的?如何在一个Echarts 3D图中画一个圆圈?如何在Echarts 3D图中画一个立方体? Catmull-Rom插值算法先来回答第二个问题回到第一个问题在Echarts 3D图中…

C#关闭程序 CefSharp.BrowserSubprocess.exe,执行控制台命令

执行控制台命令,关闭大量的CefSharp.BrowserSubprocess进程, 控制台命令: taskkill /f /im CefSharp.BrowserSubprocess.exe 有权限要求: 需要设置执行程序为管理员模式,IIS部署的应用程序,设置应用程序池…

git基础命令(三)之远程命令

目录 基础概念origin git clonegit remote add 添加远程存储库git remote 显示远程存储库列表git pushgit pushgit push origin mastergit push origin --allgit push -f origin mastegit push origin --tags git fetch获取远程仓库的更新查看远程分支的更新情况拉取特定远程分…

【Linux】——进程地址空间 Linux2.6内核进程调度队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、环境变量的补充 二、进程空间的地址 2.1、程序地址空间 2.2、研究背景 2.3、程序地址空间 来段代码感受一下 2.4、进程地址空间 2.5、如何…

一文搞懂IP

IP 1. 基本介绍2. IP地址定义3. IP地址分类4. 子网掩码5. 全局地址与私有地址 1. 基本介绍 TCP/IP 协议的心脏是网络层,主要“实现节点之间的通信”,即“点对点(end-to-end)通信”。 网络层包含IP(Internet Protocol)及DNS(Domain Name Sys…

Linux的基本指令讲解

1 ls指令 语法: ls [选项][目录或文件] 功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d…

Leetcode 387. First Unique Character in a String

Problem Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1. Algorithm Use two lists: one list is used to count the letters in “s”; the other list is the position where the letter first …

Json Web Token(JWT) 快速入门

推荐视频:【从零开始掌握JWT】 目录 第一章 会话跟踪 01 使用Cookie和Session,jsessionid 02 使用token 例子一:自定义token 例子二:使用redis存储token 第一章 会话跟踪 应用背景 :浏览器访问web应用&#xff…

下拉树级带搜索功能

可以直接复制粘贴到自己的项目里,方法处把接口替换一下 <template><div><el-popoverplacement"bottom"width"200"trigger"click"><el-inputslot"reference"class"mrInput":placeholder"placehol…

天锐绿盾 | 公司内部文件数据 \ 资料加密系统,数据防泄密软件

#防止设计图纸、各种类型文件、各种类型软件、财务数据、客户资料、源代码&#xff0c;数据存储服务器、SVN、Git等商业核心文件数据外泄# 天锐绿盾是一款专业的企业级文件数据及资料加密系统&#xff0c;旨在为企业内部数据安全提供强有力的支持。 德人合科技 | ——天锐绿盾…

生成式人工智能如何改变商业和社会

生成式人工智能是否将带来生产力黄金时代,或在全球经济中摧毁数以百万计的生计?它是否将带人们步入个人充实的新成长道路,或引导他们一步步走入孤独和隔离的死胡同?它是否将 引领人类 走向新的高处,或播下我们集体毁灭的种子? 自ChatGPT上线以来14个月来,人们还没有完全弄清…

B站python爬虫课程笔记(Q11-15)

下面是学习的网址&#xff1a; ​​​​​​【Python爬虫】 目录 11、class定义类别的一些问题 1&#xff09;定义init初始化函数的一些问题 2&#xff09;定义两个不同函数之间要有空行 3&#xff09;print的技巧 12、class定义类别的一些问题2 13、class_inheritance类…

MySQL数据库的基本概念与安装

目录 引言 一、数据库的基本概念 &#xff08;一&#xff09;数据、表与数据库 1.数据(Data) 2.表 3.数据库 &#xff08;二&#xff09;数据库管理系统 &#xff08;三&#xff09;数据库系统 二、数据库的发展 三、主流数据库的介绍 &#xff08;一&#xff09;关…

地理数据表达方式学习——KML与SHP

一、KML-Keyhole Markup Language Keyhole Markup Language (KML)是一种XML符号&#xff0c;用于浏览器中二维地图和三维地球的地理注释和地理可视化&#xff08;地理数据包括点、线、面、多边形、多面体以及模型等&#xff09;。KML是伴随着Google Earth的使用而开发的&#x…

word的第六课笔记

1.排版的六大特点&#xff08;留白、对齐、亲密、对比、重复、可自动更新&#xff09; 先设置页边距为2厘米&#xff0c;左侧装订线考虑2.75厘米。段落间距段前段后设置一个就可以了&#xff0c;如段前0.5行 &#xff08;留白&#xff1a;让文字更加容易阅读&#xff0c;调大页…

AMRT 3D 数字孪生引擎(轻量化图形引擎、GIS/BIM/3D融合引擎):智慧城市、智慧工厂、智慧建筑、智慧校园。。。

AMRT3D 一、概述 1、提供强大完整的工具链 AMRT3D包含开发引擎、资源管理、场景编辑、UI搭建、项目预览和发布等项目开发所需的全套功能&#xff0c;并整合了动画路径、精准测量、动态天气、视角切换和动画特效等工具。 2、轻量化技术应用与个性化定制 AMRT3D适用于快速开…