2024 09 26, 2218 今日內容
2024-09-26, 22:18-今日內容
Pd里面有专门针对categorical的类型。我们可以吧整个categories的column转化成cateorical的数据,这样… Decision tree 也是ML的一种模型, 主要是对与tabular的table数据最好用。 GBM graident boost… Fastai的预测结果通常是p和label/target;可以用indexing来选。 检查fastai 是不是用的gpu 可以对dls 检查:learn.dls.device Fastai 可以用非常快的方法对很多个model的预测结果进行集成。 也就是emsembling。 Command line 可以有直接显示前几行的语法, head就是。 Head -n filename Torch 预测出来的不一定直接是categorical,也可以是int 或者float, 然后我们把他跟0.5 相比, 大于是true… Pd预测出来的column,选一些出来save到csv, 可以直接用column的list: 即使用了fastai, 我们对train data 处理过的feature ,也需要对test set 进行同样的feature… fastai 的dataloader 的dls的写法:主要就是学会区别categorical 和continuous 的data的… Pd如果发现某个column 包含了很多的信息, 可以用这个column的str的split。 如果让他的expand 是true… Pd想知道有多少个unique的value, 用unique Pd找到某个object的column , 的某个位置上的元素, 用的是str这个method Python 里面两种方式创建字典都是可以的: torch的matrxi multiplication给了我们非常neat的写法: == 是直接比较value的大小。 is 是不是比较他们都在同一个存储的位置.同时bool是也是可以比较的。 Torch里的每一个tensor 都有内置方法, sub_ torch得step更新是这样的: weight = weight - learning_rate * gradient torch 得back 每次 ,只能更新一次,。如果我们想要多次调整,就需要很多个epoch。 Torch需要修改谁的weight 就需要求谁护角require_grad_() Torch 要求对一个function进行backward。 就要对wieght 也就是coeffidic 要求开始保留grad torch.rand 返回的是uniform的distribution 0-1 Pd 吧把整个frame 转换成numpy 的方式 用to_numpy()比values 更推荐, 他和values 差不太多。 例子… t_indep = torch.tensor(df[indep_cols].values, dtype=torch.float)也… Pd在这进行categorical得数据转换的时候,可以让pd 弄成dummies的样子, (类似于ml的one hot encoding…
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd里面有专门针对categorical的类型。我们可以吧整个categories的column转化成cateorical的数据,这样… Pd里面有专门针对categorical的类型。我们可以吧整个categories的column转化成cateorical的数据,这样能加速操作。 df[‘Embarked’] = pd.Categorical(df.Embarked)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Decision tree 也是ML的一种模型, 主要是对与tabular的table数据最好用。 GBM graident boost… Decision tree 也是ML的一种模型, 主要是对与tabular的table数据最好用。 GBM graident boost machine就是很多个决策树组成的,
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Fastai的预测结果通常是p和label/target;可以用indexing来选。 preds, targets = learn.get_preds()
preds 是预测结果
targets 是目标标签
learn.get_preds()[0]就是在选择预测的结果p
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
检查fastai 是不是用的gpu 可以对dls 检查:learn.dls.device
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Fastai 可以用非常快的方法对很多个model的预测结果进行集成。 也就是emsembling。 预测结果是最后很多模型的平均预测结果。 可以帮我们减少模型的误差, 提高accuracy。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Command line 可以有直接显示前几行的语法, head就是。 Head -n filename
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch 预测出来的不一定直接是categorical,也可以是int 或者float, 然后我们把他跟0.5 相比, 大于是true… Torch 预测出来的不一定直接是categorical,也可以是int 或者float, 然后我们把他跟0.5 相比, 大于是true, 小于是0. 我们可以直接吧bool强制换话成int, 看下面这个例子:
tst_df[‘Survived’] = (preds[:,1]>0.5).int()
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd预测出来的column,选一些出来save到csv, 可以直接用column的list: sub_df = tst_df[[‘PassengerId’,’Survived’]] sub_df.to_csv(‘sub.csv’, index=False)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
即使用了fastai, 我们对train data 处理过的feature ,也需要对test set 进行同样的feature… 即使用了fastai, 我们对train data 处理过的feature ,也需要对test set 进行同样的feature engineering的处理。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
fastai 的dataloader 的dls的写法:主要就是学会区别categorical 和continuous 的data的… fastai 的dataloader 的dls的写法:主要就是学会区别categorical 和continuous 的data的column。 然后吧对应的写进去就好了。  course22/06-why-you-should-use-a-framework.ipynb at master · fastai/course22 https://docs.fast.ai/tabular.core.html#categorify
dls = TabularPandas( df, splits=splits, procs = [Categorify, FillMissing, Normalize], cat_names=[“Sex”,”Pclass”,”Embarked”,”Deck”, “Title”], cont_names=[‘Age’, ‘SibSp’, ‘Parch’, ‘LogFare’, ‘Alone’, ‘TicketFreq’, ‘Family’], y_names=”Survived”, y_block = CategoryBlock(), ).dataloaders(path=”.”)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd如果发现某个column 包含了很多的信息, 可以用这个column的str的split。 如果让他的expand 是true… Pd如果发现某个column 包含了很多的信息, 可以用这个column的str的split。 如果让他的expand 是true, 那么pd会让你用list的方法选择低0个还是低1个分出来的column。 如果第二个还包含一些可以split的数据,我们还可以继续用split分,这有一个简单的例子: df[‘Title’] = df.Name.str.split(‘, ‘, expand=True)[1].str.split(‘.’, expand=True)[0]
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd想知道有多少个unique的value, 用unique 直接就可以算出多少个数: ticket_unique_count = df[‘Ticket’].nunique() print(ticket_unique_count)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd找到某个object的column , 的某个位置上的元素, 用的是str这个method df[‘Deck’] = df.Cabin.str[0].map(dict(A=”ABC”, B=”ABC”, C=”ABC”, D=”DE”, E=”DE”, F=”FG”, G=”FG”))
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Python 里面两种方式创建字典都是可以的: mapping = {“A”: “ABC”, “B”: “ABC”, “C”: “ABC”, “D”: “DE”, “E”: “DE”, “F”: “FG”, “G”: “FG”}
mapping = dict(A=”ABC”, B=”ABC”, C=”ABC”, D=”DE”, E=”DE”, F=”FG”, G=”FG”)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
torch的matrxi multiplication给了我们非常neat的写法: (val_indep@coeffs) 和(val_indep*coeffs).sum(dim=1) 一摸一样 也就是乘了之后再加起来。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
== 是直接比较value的大小。 is 是不是比较他们都在同一个存储的位置.同时bool是也是可以比较的。 import torch
a = torch.tensor([1, 2, 3]) b = torch.tensor([1, 2, 3]) c = a
元素级别的值比较
print(a == b) # 输出: tensor([True, True, True])
对象身份比较
print(a is b) # 输出: False print(a is c) # 输出: True
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch里的每一个tensor 都有内置方法, sub_ 这个是inplcae的做法,直接减去一个value, 不创建新的variable。 一个例子: import torch
创建一个张量
tensor = torch.tensor([1.0, 2.0, 3.0])
就地减去一个标量
tensor.sub_(1.0) print(tensor) # 输出: tensor([0.0, 1.0, 2.0])
创建另一个张量
other_tensor = torch.tensor([0.5, 1.0, 1.5])
就地减去另一个张量
tensor.sub_(other_tensor) print(tensor) # 输出: tensor([-0.5, 0.0, 0.5])
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
torch得step更新是这样的: weight = weight - learning_rate * gradient
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
torch 得back 每次 ,只能更新一次,。如果我们想要多次调整,就需要很多个epoch。 具体是这样的, backward() 和step()只会一次weight 更新, 为了多次调整, 需要多个epoch 进行每个batch的forward 。, backward 和step更新。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch需要修改谁的weight 就需要求谁护角require_grad_() 因为这个grad的目的就是对weight 进行小的修改。 或者说是tweak。 我们再对loss 进行由weight进行的组合进行最优化,也就是自己做一个absolute mean errpr 或者别的, 或者cross entropy 等等。 对loss 进行backpropo 之后, grad 对于weight的更新就会开始了,每次一个step。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch 要求对一个function进行backward。 就要对wieght 也就是coeffidic 要求开始保留grad 一个例子: coeffs.requires_grad_()
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
torch.rand 返回的是uniform的distribution 0-1 如果想让他作为系数, 可以整体-0.5, 让他成为(-0.5 , 0.5)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd 吧把整个frame 转换成numpy 的方式 用to_numpy()比values 更推荐, 他和values 差不太多。 例子… Pd 吧把整个frame 转换成numpy 的方式 用to_numpy()比values 更推荐, 他和values 差不太多。 例子: tt = torch.tensor(df[indep_cols].to_numpy(), dtype=torch.float)
tensor([[22., 1., 0., …, 0., 0., 1.], [38., 1., 0., …, 1., 0., 0.], [26., 0., 0., …, 0., 0., 1.], …, [24., 1., 2., …, 0., 0., 1.], [26., 0., 0., …, 1., 0., 0.], [32., 0., 0., …, 0., 1., 0.]])
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
t_indep = torch.tensor(df[indep_cols].values, dtype=torch.float)也… t_indep = torch.tensor(df[indep_cols].values, dtype=torch.float)也就是pd的.values 如果发现了bool 混在inft和float 里面,就会把他变成bool, 而不是默认是float 对吧
是的,使用 pd.DataFrame.values 将 DataFrame 转换为 NumPy 数组时,如果列包含混合数据类型(例如布尔型和浮点型),NumPy 会将数组的 dtype 设置为 object,而不是自动转换布尔值为浮点数。这就是为什么你需要手动将布尔列转换为浮点数,以确保整个数组的数据类型一致。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd在这进行categorical得数据转换的时候,可以让pd 弄成dummies的样子, (类似于ml的one hot encoding… Pd在这进行categorical得数据转换的时候,可以让pd 弄成dummies的样子, (类似于ml的one hot encoding) 也就是新增加很多column, 只把对应的column的row 写成true。 别的都是false。 pytorch随后会在对这些bool和int 或者float的columns, 给定全部转换成float 。 这有个例子:
t_indep = tensor(df[indep_cols].values, dtype=torch.float)  
#匯總今日內容