数据集是受教育年限和收入,如下图
代码如下
import torch
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import torch.nn as nn
import torch.optim as optimdata = pd.read_csv('./Income.csv')X = torch.from_numpy(data.Education.values.reshape(-1,1).astype(np.float32))
Y = torch.from_numpy(data.Income.values.reshape(-1,1).astype(np.float32))learning_rate = 0.0001
model = nn.Linear(1,1)
loss_fn = nn.MSELoss()
optimizer = optim.SGD(model.parameters(),lr=learning_rate)for epoch in range(50):for x,y in zip(X,Y):output = model(x)loss = loss_fn(output,y)loss.backward()optimizer.step()optimizer.zero_grad()plt.scatter(data.Education,data.Income)
plt.plot(X.numpy(),model(X).detach().numpy(),c='r')
plt.xlabel('Education')
plt.ylabel('Income')
plt.show()
输出如下