DataScience_笔记_4

Supervised Learning: Regression

本节课更加注重代码实践,而不是数学理论…

优化问题

注意几个问题

  1. 观察是否一眼就能解决
  2. 检查是否有下界,不然无意义
  3. 检查是否有意义,存在的 x 处于空集

最优值 or 最优解

关注最优值
买彩票:关注怎么中奖,而不是奖金有多少。

突函数 Convex Functions

求导求最优解:
Convex Function

多元函数的等高线

函数

import numpy as np
import matplotlib.pyplot as plt

# build meshgrid
# -1 到 1 画 1000 段
x = np.linspace(-1, 1, 1000)
y = np.linspace(-1, 1, 1000)

# 创建一个网格,其中 X 和 Y 是两个二维数组,表示 x 和 y 在网格上的所有组合:
X, Y = np.meshgrid(x, y)

a = 2
b = 5

# 计算等高线图的高度值 Z
Z = a*X**2 + b*Y**2
fig = plt.figure(figsize=(7, 7))

# 绘制等高线图
# X 和 Y 是网格坐标,Z 是高度值
# np.linspace() 生成了 10 个等间距的高度值作为等高线的轮廓线:
cs = plt.contour(X, Y, Z, np.linspace(Z.min(), Z.max(), 10))

# 设置 x 和 y 轴的范围和标签
plt.xlim([X.min(), X.max()])
plt.ylim([Y.min() - 0.01, Y.max() + 0.01])
plt.xlabel(r'$\theta_0$', fontsize=15)
plt.ylabel(r'$\theta_1$', fontsize=15)

# 添加轮廓线的标签
# fontsize 设置标签的字体大小,colors 设置标签的颜色,fmt 设置标签的格式
plt.clabel(cs, fontsize=10, colors=('k','r'), fmt='%.2f')
plt.show()

Output

梯度 The Gradient

梯度记住两个点就好

  1. 它垂直于切平面
  2. 它的维度跟 x的维度一样

用方程求解是一个不流行的方法
用梯度下降法更加流行

import numpy as np


def f(x_0):
    return x_0[0]**2+x_0[1]**2

def gradiente(x_0):
    return 2*x_0

def gradienteDescent(x_0, alpha, epsilon):
    while np.linalg.norm(gradiente(x_0))>epsilon:
        x_0 = x_0 - alpha * gradiente(x_0)
    return x_0


x_0 = np.array([1,1])
optimal_x = gradienteDescent(x_0, alpha=0.1, epsilon=0.0001)

print(optimal_x)
print(np.linalg.norm(gradiente(optimal_x)))

写在最后的idea:

计算机现在就像早期的英语专业,所以要发散性思维
研究生申请可以考虑一些其他的专业,比如说金融,机械…
申请工作可以考虑格力、小米、灯泡等偏制造业的公司…
老师最差的师妹去了很好的公司,师妹去了蓝月亮。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值