1. 优化算法
任意两点连线,所有线上的值都在集合里面–凸集
在机器学习,凹凸函数的区别?
凸函数表达能力有限
动量法: 比较平滑的改变方向,两个下降方向不一样【冲突】的时候,抵消掉一些使梯度的更新不那么剧烈。看过去两三个梯度。
mementum–超参数【beta】
Adam不一定比SGD更好,只是对学习率不那么敏感,做了非常多的平滑。
2. QA
1, 可以。
2,可以自己实现简单版本,看开源的实现细节
3,实际工业使用数据效果更差
5,是的
6,冲量法出现比较早
7,不一定比sgd好
9,收敛点是梯度为0,不再更新。梯度–损失值变大的方向,减去–值变小的方向
10,是的
11 对稀疏矩阵更新的理论,batchsize大 收敛慢一些,小收敛快一些
12 小数据用大模型会差,大模型用小数据训练效果也差,模型大小和数据大小要匹配
13 有
15 算一下有多个 unique number,大概等于样本个数就是连续的,不是就是离散的
16 有用程度打折
17 看懂能用就行
18 不好比较
19 nlp入门比赛。会议比赛。
unique number from gpt
您可能指的是 unique
方法,它能够帮助判断一个特征的唯一值数量,进而推测其是离散还是连续的特征。下面我展示如何使用 pandas
的 nunique
(获取唯一值的数量)方法来判断特征的离散性或连续性。
以下是具体的代码示例:
import pandas as pd
# 假设df是数据集
def check_feature_type_with_unique(df, threshold=20):
feature_types = {}
for col in df.columns:
unique_count = df[col].nunique()
if pd.api.types.is_numeric_dtype(df[col]):
# 根据唯一值数量判断
if unique_count < threshold:
feature_types[col] = '离散' # 如果唯一值数量少于阈值,认为是离散变量
else:
feature_types[col] = '连续' # 否则认为是连续变量
else:
feature_types[col] = '离散' # 非数值类型通常是离散变量
return feature_types
# 示例数据
df = pd.DataFrame({
'age': [23, 45, 30, 25, 40],
'gender': ['M', 'F', 'M', 'F', 'M'],
'income': [3000.5, 7000.8, 4000.6, 5500.0, 3200.4]
})
# 运行函数并查看结果
print(check_feature_type_with_unique(df))
代码说明
- 参数
threshold
:这是唯一值数量的阈值,通常设置为20。低于这个阈值的数值类型特征会被视为离散变量。 - 数据类型判断:使用
pandas
的is_numeric_dtype
来判断列是否为数值类型。 - 判断逻辑:
- 如果列是数值类型且唯一值少于阈值,则判断为离散变量;否则判断为连续变量。
- 非数值类型的特征(如性别)通常默认视为离散变量。
运行结果示例
运行后会返回每列的离散或连续属性判断。例如:
{'age': '离散', 'gender': '离散', 'income': '连续'}
这意味着 age 和 gender 是离散特征,而 income 是连续特征。