机器学习笔记(李宏毅)1

这篇博客介绍了机器学习中的数据预处理技术,包括使用pandas的iloc和loc函数进行数据选取,处理'NR'特殊值,转换为numpy矩阵,以及数据的归一化操作。此外,还提到了数据集的拆分方法和numpy的一些计算函数。博客内容侧重于数据处理的基础步骤,为后续的模型训练做好准备。
摘要由CSDN通过智能技术生成

机器学习笔记1

case study:

Regularization:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Hw1完成笔记1

题目描述:
使用丰原站的观测记录,分成 train.csv 跟 test.csv,train.csv是丰原站每个月的前 20 天所有数据。test.csv 则是从丰原站剩下的资料中取样出来。
train.csv: 每个月前 20 天的完整数据。
test.csv : 从剩下的数据当中取样出连续的 10 小时为一笔,前九小时的所有观测数据当作 feature,第十小时的 PM2.5 当作 answer。一共取出 240 笔不重复的 test_data,请根据 feature 预测这 240 笔的 PM2.5。
Data 含有 18 项观测数据 AMB_TEMP, CH4, CO, NHMC, NO, NO2, NOx, O3, PM10, PM2.5, RAINFALL, RH, SO2, THC, WD_HR, WIND_DIREC, WIND_SPEED, WS_HR。

数据读取与预处理:

iloc函数(引):

位于:pandas库,全称为index location,即对数据进行位置索引,从而在数据表中提取出相应的数据。
df.iloc[a,b]> 操作对象:DataFrame类型 用法:
1.iloc[a,b]:取行索引为a列索引为b的数据。
2.iloc[a:b,c]:取行索引从a到b-1,列索引为c的数据。 iloc[].values,用values属性取值,返回ndarray,但是单个数值无法用values函数读取

import pandas
df = pandas.read_csv('a.csv')
print(df.iloc[0:2,2]) #数据结构是Series
print(df.iloc[0:2,2].values) #数据结构是ndarray
#Out1:0    87
#      1    95
# Name: 分数, dtype: int64
#Out2:[87 95]

3.iloc[a:b,c:d]:取行索引从a到b-1,列索引从c到d-1的数据。
4.iloc[a]:取取行索引为a,所有列索引的数据。

loc函数(引):

loc使用实际设置的索引来索引数据。但行列名为数字时,loc也可以索引数字,但这里的数字不一定从0开始编号,是对应具体行列名的数字。

索引为一个数,默认输出行
print(df.loc[0])#输出第0行元素
print(df.iloc[0])#输出第0行元素
0    0
1    1
2    2
3    3

输出结果为df第0行元素,结果中第一列表示列名,第二列表示具体的值。
如果只需要输出某一列,输入df.loc[:,0]表示输出第0列。
如果需要输出第0到2列的数据:
#方式1 df.loc[:,0:2]#可把loc理解为遍历字符串类型,0:2则表示标签为0,1,2三列
#方式2 df.iloc[:,0:3]#iloc遍历的数数字,python中0:3对应0,1,和2

有一行或列不是从0顺序编号:
#把行标签换成其他数字编号 df.index=[2,5,7] df.loc[2]

在这里插入图片描述
输出结果为:
0 0
1 1
2 2
3 3
Name: 2, dtype: int32
输出结果对应的是列标签为“2”所在的行。

行或者列为非数字标签:
#把行标签转化为非数字类型 df.index=[‘a’,‘b’,‘c’]
#输出第a、b行,第0到2列的数据
#方式1 df.loc[[‘a’,‘b’],0:2]#可把loc理解为遍历字符串类型,0:2则表示标签为0,1,2三列
#方式2 df.iloc[0:2,0:3]#iloc遍历的是数字,0:2表示的是0和1,0:3表示0,1,2

在这里插入图片描述
多数情况下用iloc即可完成任务。

data[data == ‘NR’] = 0: 将数据中值为“NR”的数据全部赋值为0,去除特殊值。
raw_data => data.to_numpy(): 将DataFrame格式的数据变成numpy矩阵
reshape(1,-1) 将数据变为1行

归一化所需函数:

mean_x = np.mean(x, axis=0)
axis = 0表示对各列求均值,返回 1* 列数 的矩阵
axis 不设置值,对> mn 个数求均值,返回一个实数
axis = 0 : 压缩行,对各列求均值,返回 1
n矩阵
axis = 1 :> 压缩列,对各行求均值,返回 m*1矩阵

数据集的拆分:切片实现

numpy计算函数:

np.zeros([m,n]):返回一个全0的mn数组。   
np.ones([m,n]):返回一个全1的mn维数组。
np.concatenate((a,b),axis=1):a和b做行拼接,结果为[a,b]。   
np.dot(x,w):x和w点乘。
np.power(x,n):x中各元素的n次方。   
np.sqrt(x):x中各元素的平方根。
np.sum(x):x中所有元素的和,返回一个值。   
x.transpose():将x转置。

参数保存与加载:

w = w - learning_rate * gradient / np.sqrt(adagrad + eps) # 更新权重
np.save(‘weight.npy’, w) # 将参数保存下来
w = np.load(‘weight.npy’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值