numpy
-
1、今天早上对numpy进行了一系列的探索,下面总结一下numpy的一些特性:
numpy数组
批量处理
通用函数
广播机制
-
2、今天晚上使用numpy进行了一个简单的机器学习预测
代码如下:
#!/usr/bin/env python
# coding: utf-8
# In[1]:
# -*- coding: utf-8 -*-
import numpy as np
# get_ipython().run_line_magic('matplotlib', 'inline')
from matplotlib import pyplot as plt
# In[2]:
np.random.seed(100)
x = np.linspace(-1, 1, 100).reshape(100, 1)
y = 3 * np.power(x, 2) + 2 + 0.2 * np.random.rand(x.size).reshape(100, 1)
# In[3]:
plt.scatter(x, y)
plt.show()
# In[4]:
# 随机初始化参数
w1 = np.random.rand(1, 1)
b1 = np.random.rand(1, 1)
# In[5]:
lr = 0.001 # 学习率
for i in range(800):
# 前向传播
y_pred = np.power(x, 2) * w1 + b1
# 定义损失函数
loss = 0.5 * (y_pred - y) ** 2
loss = loss.sum()
# 计算梯度
grad_w = np.sum((y_pred - y) * np.power(x, 2))
grad_b = np.sum((y_pred - y))
# 使用梯度下降法,最小化loss
w1 -= lr * grad_w
b1 -= lr * grad_b
# In[6]:
plt.plot(x, y_pred, 'r-', label = 'predict')
plt.scatter(x, y, color = 'blue', marker = 'o', label = 'true') # true data
plt.xlim(-1, 1)
plt.ylim(2, 6)
plt.legend()
plt.show()
print(w1, b1)
# In[ ]: