本文仅仅是个人学习笔记,以及记录学习过程中出现的一些问题。
学习参考书网站
deep learning在线学习文档
首先我们需要手动写一些数据到csv文件中,文档中使用以下代码。
import os
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
f.write('NumRooms,Alley,Price\n') # 列名
f.write('NA,Pave,127500\n') # 每行表示一个数据样本
f.write('2,NA,106000\n')
f.write('4,NA,178100\n')
f.write('NA,NA,140000\n')
但是运行之后在我的电脑上会报以下错误
解决办法是将以下2句修改一下,参考文章:报错: [WinError 5] 拒绝访问。: ‘…\data‘
os.makedirs(os.path.join('\\', 'data'), exist_ok=True)
data_file = os.path.join('\\', 'data', 'house_tiny.csv')
此时,创建成功后,在电脑C盘的data文件夹中会出现一个house_tiny.csv的文件夹。
导入pandas包并调用read_csv函数,由上一问可知,这个数据集有4行3列,
如果没有安装pandas,可以使用下行来安装pandas
!pip install pandas
import pandas as pd
data = pd.read_csv(data_file)
print(data)
上图中的NAN即为缺失值,我们需要将缺失值补起来。对于NumRooms列,缺失值就可以用该列的平均值来代替。
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())
print(inputs)
运行结果如下:
对于Alley列,我们将NAN看作是一个类别,这样可以将Alley分为2列
pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。 巷子类型为“Pave”的行会将“Alley_Pave”的值设置为1,“Alley_nan”的值设置为0。 缺少巷子类型的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)
文档中提供了三个主流深度学习框架,分别是MXNET,PYTORCH,TENSORFLOW
我们这里使用PYTORCH框架
import torch
X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)
X, y
但是我这里又报错了
原因是未安装torth,安装语句是
pip install torch
安装之后要稍微等一段时间,再运行上述代码
运行结果如下: