机器学习(二) 线性代数-向量

本文介绍了机器学习中线性代数的基础知识——向量,包括向量的概念、加法、减法、标量乘法以及点乘。通过实例展示了向量运算,并提供了数据可视化的演示,帮助理解向量在不同场景的应用。
摘要由CSDN通过智能技术生成

机器学习(二) 线性代数-向量

对于机器学习来说,数学很重要,即使你已经把大学阶段的数学知识都忘完了,还是要从记忆里拾取一些。

向量

数学概念里,向量是指具有大小和方向的量。具体的说向量可以相加生成新的向量,可以乘以标量(数字),也可以生成新的向量的对象。

比如说,一个班级里所有学生的身高、体重、年龄数据,可以把数据记为三维向量(height,weight,age),这个班级有4门考试,可以把学生成绩记为四维向量(exam1,exam2,exam3,exam4)。

把数据用向量表示为数字的列表,例如:

height_weight_age = [172,139,18]
grades = [88,92,94,81]

这样很直观,但是在python里列表不能直接对向量运算,这里就需要转换一下方式。

首先说说两个向量做加法,向量以分量形式做运算。意思是如果两个向量v和w长度相同,那它们的和就是一个新的向量,其中向量的第一个元素等于v[0] + w[0],第二个元素等于v[1] + w[1]。如果2个向量的长度不同,则不能相加。

例如:向量[1,2]加上向量[2,1]等于[1+2 , 2+1]即是[3,3]

def vector_add(v,w): #向量相加
    return [v_i + w_i for v_i,w_i in zip(v,w)]

def vector_subtract(v,w): #向量相减
    return [v_i - w_i for v_i,w_i in zip(v,w)]

v = [1,2]
w = [2,1]
vector_add(v,w)
vector_subtract(v,w)

直接这样用代码敲出来太抽象了,那么如何结合前面讲过的数据可视化进行展示呢?我写了向量加法的数据化展示,你可以自己写一下更多向量运算。

import numpy as np
import matplotlib.pyplot as plt
import pylab
pylab.rcParams['figure.figsize'] = (20.0, 10.0) # 显示大小

def draw_vector_add(A, B):
    fig = plt.figure()
    ax = fig.add_subplot(121)
    # fc: filling color
    # ec: edge color
    ax.arrow(0, 0, A[0], A[1],
             length_includes_head=True,# 增加的长度包含箭头部分
             head_width=0.25, head_length=0.25, fc='c', ec='y')
    ax.arrow(A[0], A[1], B[0], B[1],
             length_includes_head=True,# 增加的长度包含箭头部分
             head_width=0.25, head_length=0.25, fc='c', ec='y')
    ax.arrow(0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值