【机器学习】第二部分下:决策树回归
决策树回归核心思想:相似的输入必会产生相似的输出。例如预测某人薪资:
年龄:1-青年,2-中年,3-老年学历:1-本科,2-硕士,3-博士经历:1-出道,2-一般,3-老手,4-骨灰性别:1-男性,2-女性
年龄
学历
经历
性别
==>
薪资
1
1
1
1
==>
6000(低)
2
1
3
1
==>
10000(中)
3
3
4
1
==>
50000(高)
…
…
…
…
==>
…
1
3
2
2
==>
?
12345678样本数量非常庞大 100W个样本换一种数据结构,来提高检索效率树形结构回归 : 均值分类 : 投票(概率)
为了提高搜索效率,使用树形数据结构处理样本数据:$$\text{年龄}=1\left{\begin{aligned}\text{学历}1 \\text{学历}2 \\text{学历}3 \\end{aligned}\right.\quad\ ...
【机器学习】第二部分上:线性回归
线性模型线性模型是自然界最简单的模型之一,它描述了一个(或多个)自变量对另一个因变量的影响是呈简单的比例、线性关系.例如:
住房每平米单价为1万元,100平米住房价格为100万元,120平米住房为120万元;
一台挖掘机每小时挖$100m^3$沙土,工作4小时可以挖掘$400m^3$沙土.
线性模型在二维空间内表现为一条直线,在三维空间内表现为一个平面,更高维度下的线性模型很难用几何图形来表示(称为超平面).如下图所示:
二维空间下线性模型表现为一条直线
三维空间下线性模型表现为一个平面
线性回归是要根据一组输入值和输出值(称为样本),寻找一个线性模型,能最佳程度上拟合于给定的数值分布,从而再给定新的输入时预测输出.样本如下表所示:
输入(x)
输出(y)
0.5
5.0
0.6
5.5
0.8
6.0
1.1
6.8
1.4
6.8
根据样本拟合的线性模型如下图所示:
线性模型定义设给定一组属性$x, x=(x_1;x_2;…;x_n)$,线性方程的一般表达形式为:$$y = w_1x_1 + w_2x_2 + w_3 ...
【机器学习】第一部分:概述
人工智能课程概述什么是人工智能人工智能(Artificial Intelligence)是计算机科学的一个分支学科,主要研究用计算机模拟人的思考方式和行为方式,从而在某些领域代替人进行工作.
人工智能的学科体系以下是人工智能学科体系图:
机器学习(Machine Learning):人工智能的一个子学科,研究人工智能领域的基本算法、原理、思想方法,机器学习研究的内容在其它子学科都会用到
计算机视觉(Computer Vision):研究计算机处理、识别、理解图像、视频的相关技术
自然语言处理(Natural Language Processing):研究计算机理解人类自然语言的相关技术
语言处理:研究计算机理解识别、理解、合成语音的相关技术
人工智能与传统软件的区别
传统软件:执行人的指令和想法,在执行之前人已经有了解决方案,无法超越人的思想和认识范围
人工智能:尝试突破人的思想和认识范围,让计算机学习到新的能力,尝试解决传统软件的难题
课程介绍课程内容课程内容主要包括:
课程特点
内容多:包括机器学习、深度学习、计算机视觉、NLP、常用框架
难度大:学习难度较大,入门难、提 ...
Pandas 和 Numpy 中的统计
数值型描述统计算数平均值$S = [s_1, s_2, …, s_n]$
样本中的每个值都是真值与误差的和。
$mean = \frac{(s_1 + s_2 + … + s_n) }{n}$
算数平均值表示对真值的无偏估计。
123m = np.mean(array)m = array.mean()m = df.mean(axis=0)
案例:针对电影评分数据做均值分析:
123mean = ratings['John Carson'].mean()mean = np.mean(ratings['John Carson'])means = ratings.mean(axis=1)
加权平均值求平均值时,考虑不同样本的重要性,可以为不同的样本赋予不同的权重。
样本:$S = [s_1, s_2, s_3 … s_n]$
权重:$W =[w_1, w_2, w_3 … w_n]$
加权平均值:$$a = \frac{s_1w_1 + s_2w_2 + … + s_nw_n}{w_1+w_2+…+ ...
Matplotlib 笔记
:star2:基本绘图
:star:绘图核心API案例: 绘制简单直线
123456789101112131415161718192021import numpy as npimport matplotlib.pyplot as plt# 绘制简单直线x = np.array([1, 2, 3, 4, 5])y = np.array([3, 6, 9, 12, 15])# 绘制水平线、垂线plt.axhline(y=6, ls=":", c="blue") # 添加水平直线plt.axvline(x=4, ls="-", c="red") # 添加垂直直线# 绘制多段垂线plt.vlines([2, 3, 3.5], # 垂线的x坐标值 [10, 20, 30], # 每条垂线起始y坐标 [25, 35, 45]) # 每条垂线结束y坐标 [],[],[] 位置,开始位置,结束位置 plt.plot(x, y) ************ ...
Pandas笔记
:star2:pandas介绍Python Data Analysis Library
pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型,提供了高效地操作大型结构化数据集所需的工具。
:star2:pandas核心数据结构数据结构是计算机存储、组织数据的方式。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
:star:SeriesSeries可以理解为一个一维的数组,只是index名称可以自己改动。类似于定长的有序字典,有Index和 value。
1234567891011121314import pandas as pdimport numpy as np# 创建一个空的系列s = pd.Series()# 从ndarray创建一个Seriesdata = np.array(['张三','李四','王五','赵柳'])s = pd.Series(data)s ...
Numpy 中的 Ndarray
numpy概述
Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。
Numpy是其它数据分析及机器学习库的底层库。
Numpy完全标准C语言实现,运行效率充分优化。
Numpy开源免费。
numpy历史
1995年,Numeric,Python语言数值计算扩充。
2001年,Scipy->Numarray,多维数组运算。
2005年,Numeric+Numarray->Numpy。
2006年,Numpy脱离Scipy成为独立的项目。
numpy的核心:多维数组
代码简洁:减少Python代码中的循环。
底层实现:厚内核(C)+薄接口(Python),保证性能。
ndarray 数组用np.ndarray类的对象表示n维数组
123import numpy as npary = np.array([1, 2, 3, 4, 5, 6])print(type(ary)) # <class 'numpy.ndarray'>
内存中的ndarray对象元数据(metadata)
存储对目标数组的 ...
【Django】 开发:补充知识
有需要上网现查现学的东西。
分页
分页是指在web页面有大量数据需要显示,为了阅读方便在每个页页中只显示部分数据。
好处:
方便阅读
减少数据提取量,减轻服务器压力。
Django提供了Paginator类可以方便的实现分页功能
Paginator类位于django.core.paginator 模块中。
Paginator对象
负责分页数据整体的管理
对象的构造方法
paginator = Paginator(object_list, per_page)
参数
object_list 需要分类数据的对象列表
per_page 每页数据个数
返回值:
Paginator的对象
Paginator属性
count:需要分类数据的对象总数
num_pages:分页后的页面总数
page_range:从1开始的range对象, 用于记录当前面码数
per_page 每页数据的个数
Paginator方法
page(number)
参数 number为页码信息(从1开始)
返回当前number页对应的页信息
如果提供的页码不存在,抛出InvalidPa ...
【Django】 开发:中间件和SDRF扩展知识
中间件 Middleware
中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。
每个中间件组件负责做一些特定的功能。例如,Django 包含一个中间件组件 AuthenticationMiddleware,它使用会话将用户与请求关联起来。
中间件类:
中间件类须继承自 django.utils.deprecation.MiddlewareMixin类
中间件类须实现下列五个方法中的一个或多个:
def process_request(self, request): 执行路由之前被调用,在每个请求上调用,返回None或HttpResponse对象
def process_view(self, request, callback, callback_args, callback_kwargs): 调用视图之前被调用,在每个请求上调用,返回None或HttpResponse对象
def process_response(self, request, response): 所有响应返回浏览器 ...
【Django】 开发:Cookie、Session和缓存
cookies 和 session
会话 - 从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次会话
HTTP协议是无状态的,导致会话状态难以保持
试想一下,如果不保持会话状态,在电商网站购物的场景体验?
Cookies和Session就是为了保持会话状态而诞生的两个存储技术
cookies
cookies是保存在客户端浏览器上的存储空间
Chrome 浏览器 可能通过开发者工具的 Application >> Storage >> Cookies 查看和操作浏览器端所有的 Cookies 值
火狐浏览器 可能通过开发者工具的 存储 -> Cookie
cookies 在浏览器上是以键-值对的形式进行存储的,键和值都是以ASCII字符串的形存储(不能是中文字符串)
cookies中的数据是按域存储隔离的,不同的域之间无法访问
cookies 的内部的数据会在每次访问此网址时都会携带到服务器端,如果cookies过大会降低响应速度
在Django 设置浏览器的COOKIE 必须通过 HttpResponse 对象来完成
添加、 ...
【Django】 开发:数据库操作和后台管理
查询数据
数据库的查询需要使用管理器对象进行
通过 MyModel.objects 管理器方法调用查询接口
方法
说明
all()
查询全部记录,返回QuerySet查询对象
get()
查询符合条件的单一记录
filter()
查询符合条件的多条记录
exclude()
查询符合条件之外的全部记录
…
all()方法
方法: all()
用法: MyModel.objects.all()
作用: 查询MyModel实体中所有的数据
等同于
select * from tabel
返回值: QuerySet容器对象,内部存放 MyModel 实例
示例: 1234from bookstore.models import Bookbooks = Book.objects.all()for book in books: print("书名", book.title, '出版社:', book.pub)
在模型类中定义 def __str__(self): 方法可以自定义默认的字符串
1 ...
【Django】 开发:静态文件,应用和模型层
静态文件
什么是静态文件
不能与服务器端做动态交互的文件都是静态文件
如:图片,css,js,音频,视频,html文件(部分)
静态文件配置
在 settings.py 中配置一下两项内容:
配置静态文件的访问路径
通过哪个url地址找静态文件
STATIC_URL = ‘/static/‘
说明:
指定访问静态文件时是需要通过 /static/xxx或 127.0.0.1:8000/static/xxx
xxx 表示具体的静态资源位置
配置静态文件的存储路径 STATICFILES_DIRS
STATICFILES_DIRS保存的是静态文件在服务器端的存储位置
示例:
1234# file: setting.pySTATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"),)
访问静态文件
使用静态文件的访问路径进行访问
访问路径: STATIC_URL = ‘/static/‘
示 ...
JQuery 学了不亏
介绍jQuery是JavaScript的工具库,对原生JavaScript中的DOM操作、事件处理、包括数据处理和Ajax技术等进行封装,提供更完善,更便捷的方法。
使用引入先引入jquery文件,才能使用jquery语法
CDN 有网(备用)
本地文件(常用)
工厂函数 - $()“$()”函数用于获取元素节点,创建元素节点或将原生JavaScript对象转换为jquery对象,返回 jQuery 对象。jQuery 对象实际是一个类数组对象,包含了一系列 jQuery 操作的方法。例如 :
123456//$()获取元素节点,需传入字符串的选择器$("h1")$("#d1")$(".c1")$("body,h1,p")//选择器的特点,与样式选择器一致
原生JavaScript对象与jQuery对象原生JavaScript对象与jQuery对象的属性和方法不能混用。可以根据需要,互相转换 :
原生JavaScript转换jQuery对象 $(原生对象),返回 jQuery 对象
jQuery对象转 ...
【Django】 开发:模板语言
Django的框架设计模式
MVC 设计模式
MVC 代表 Model-View-Controller(模型-视图-控制器) 模式。
作用: 降低模块间的耦合度(解耦)
MVC
M 模型层(Model), 主要用于对数据库层的封装
V 视图层(View), 用于向用户展示结果
C 控制(Controller ,用于处理请求、获取数据、返回结果(重要)
MVC模式如图:
MTV 模式 MTV 代表 Model-Template-View(模型-模板-视图) 模式。这种模式用于应用程序的分层开发
作用: 降低模块间的耦合度(解耦)
MTV
M – 模型层(Model) 负责与数据库交互
T – 模板层(Template) 负责呈现内容到浏览器
V – 视图层(View) 是核心,负责接收请求、获取数据、返回结果
MTV模式如图:
注:MTV的本质还是MVC,可以理解为MVC+T,使用T来辅助展示网站内容。因为网页的C部分很多时候都不大,不太需要拆分出来,所以就变成MTV了。
模板 Templates
什么是模板
模板是可以根据字典数据动态变化的html ...
【Django】 Python Web 框架基础
Django框架的介绍起源&现状
2005年发布,采用Python语言编写的开源web框架
早期的时候Django主做新闻和内容管理的
一个重量级的 Python Web框架,Django 配备了常用的大部分组件
基本配置
路由系统
原生HTML模板系统
视图 view
Model模型,数据库连接和ORM数据库管理
中间件
Cookie & Seesion
分页
数据库后台管理系统admin
Django的用途
网站后端开发
微信公众号、微信小程序等后台开发
基于HTTP/HTTPS协议的后台服务器开发
在线语音/图像识别服务器
在线第三方身份验证服务器等
Django的版本
最新版本:3.0.x
当前教学版本:2.2.12
Django的官网
官方网址: http://www.djangoproject.com
中文文档(第三方):
https://yiyibooks.cn/
Django的安装
查看已安装的版本
123>>> import django>>> print ...