英语 - 单词

词性

  • 名词(n.)
    • 人相关
      • -er / -or,做事的人或拥有特定职业的人
        • actor
      • -ist,拥护某种主义的人或从事某一领域的人
        • journalist
      • -ian,某方面的人或精通某领域的人
        • historian
    • -tion / -sion,表示动作或状态
      • action
      • version
    • -ment,行为或状态
      • development
    • -ness,性质或状态
      • Happiness
    • -ity / -ty / -cy,标识性质或状态
      • ability
      • beauty
    • -ship,关系或身份
      • friendship
    • -hood,状态或身份
      • childhood
    • -ure,表示行为结果
      • failure
      • pressure
    • -ance / ence
      • appearance
      • difference
    • -ee,受动者或参与者
      • employee
    • -acy / -ency,性质或状态
      • accuracy
    • -ology,研究或学科
      • biology
    • -ary,集合或事物相关
      • dictionary
      • array
    • -th,由形容词转为名词
      • strength
    • -age,标识性质或状态
      • storage
      • marriage
    • -ry,标识场所或集合名词
      • machinery
  • 形容词(adj.)
    • -able, -ible: 表示“可以…的”,“有…能力的”或“值得…的”
      • capable, edible, visible
    • -al, -ial: 表示“具有…属性的”或“关于…的”。
      • natural, personal, revolutionary
    • -ful: 表示“充满…的”。
      • beautiful, helpful, wonderful
    • -less: 表示“没有…的”。
      • careless, homeless, timeless
    • -ous: 表示“有…倾向的”或“充满…的”。
      • dangerous, curious, glorious
    • -ic, -ical: 表示“…的”,通常与科学或艺术相关。
      • historic, historical, economic
    • -ive: 表示“具有…属性的”或“倾向于…的”。
      • active, negative, sensitive
    • -ly: 有时用于形容词,表示“有…品质的”。
      • friendly, deadly
    • -y, -ish: 表示“像…的”或“有一点…的”。
      • tasty, foolish, bluish
    • -like: 表示“像…一样”。
      • childlike, manlike
    • -some: 表示“有…特质的”或“引起…的”。
      • troublesome, handsome
    • -ary, -ory: 表示“属于…的”或“与…有关的”。
      • honorary, imaginary
  • 及物动词(vt.)
    • -ize-ise ,后缀可以加在名词或形容词后面,形成动词,通常表示“使成为…”,“按照…方式处理”,“照…样子做”
      • normal → normalize(使正常化)
      • equal → equalize(使平等,使相等)
    • -ify,加在名词或形容词后面,形成动词,通常表示“使…化”,“使成为…”
      • beautify(美化)
      • purify(净化)
  • 不及物动词(vi.)
  • 副词(adv.)
    • -ly,加在形容词后面行成副词
      • quick -> quickly(快地),happy -> happily(快乐地)
    • -wise ,表示方向或方式。
      • Examples: clockwise -> clockwise(顺时针方向),money -> moneywise(在金钱方面)
    • -wards/-ward,表示方向或趋势
      • sun -> sunwards/sunward(向太阳),north -> northwards/northward(向北)
    • -erly,表示方向或来源
      • east -> easterly(向东的,来自东边的)
    • -ways,表示方式或方向
      • back -> backways(向后地),side -> sideways(侧面地)
  • 介词(prep.)
  • 连词(conj.)
  • 数词(num.)
  • 代词(pron.)
  • 感叹词(int.)

名词(Noun, n.)

表示人、事物、地点或概念。比如 dog、table。

动词(Verb, v.)

表示动作、状态或事件。比如 run、eat。

形容词(adjective, adj.)

描述或修饰名词、代词。比如 blue、tall。

副词(Adverb, adv.)

修饰动词、形容词或其他副词。比如 quickly、here、well。

代词(Pronoun, pron.)

用来代替名词,避免重复。比如 he、she。

介词(Preposition, prep.)

表示名词或代词与句子其他部分的关系。比如,in、on、with。

连词(Conjunction, conj.)

用于连接词、句子或短语。比如 but、or、and。

冠词(Article, art.)

限定名词,分为定冠词和不定冠词。the(不定冠词),a/an(定冠词)。

情态动词(Modal Verb, mod.)

表示能力、许可、可能性或义务。比如 may、can、must。

助动词(Auxiliary Verb, aux.)

用于构成复合时态或被动语态。比如 be、do、have。

感叹词(Interjection, int.)

表示强烈的情感或反应。比如 oh、wow。

数词(numeral, num.)

表示数量或顺序。比如 one、first。

对比

及物动词和不及物动词

需要在后面接宾语的动词叫及物动词,反之叫不及物动词

1
The bird flies. 

fly 是不及物动词。

1
I eat an apple. 

eat 为及物动词。

Conda

安装

linux

1
2
3
4
mkdir -p ~/.miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/.miniconda3/miniconda.sh
bash ~/.miniconda3/miniconda.sh -b -u -p ~/.miniconda3
rm -rf ~/.miniconda3/miniconda.sh

配置 Shell

1
2
3
4
# for bash
~/.miniconda3/bin/conda init bash
# for zsh
~/.miniconda3/bin/conda init zsh

shell profile

1
2
eval "$(/path/to/anaconda3/bin/conda shell.YOUR_SHELL_NAME hook)" 
# 修改路径及 YOUR_SHELL_NAME

环境

列出环境

1
$ conda info --envs

创建环境

1
$ conda create -n ml

指定 channel

1
$ conda create -n ml --channel=conda-forge

克隆环境

1
$ conda create --name new_name --clone old_name

启用环境

1
$ conda activate {env-name}

环境重命名

1
conda rename -n old_name new_name 

使用 yml 文件更新环境

1
$ conda env update --file env.yml --prune

删除环境

1
$ conda remove --name {env-name} --all

默认不启用 conda base 环境

1
$ conda config --set auto_activate_base false  # 关闭默认使用 base

打印环境信息

1
$ conda info

Channel

为环境添加 channel

1
$ conda config --append channels conda-forge 

添加 channel

1
$ conda config 

打印 channel

1
$ conda config --show channels

包管理

conda 的包管理有 channel 的概念,如果不指定则为默认的 defaults。如果我们想要安装其他 channel 的包,示例如下。

1
$ conda install anaconda::gcc_linux-64

查询可用包

1
$ conda search {package}

或在 这里 搜索,页面有安装命令,比如。

1
2
3
$ conda install anaconda::gcc_linux-64
# 另外一个包
$ conda install conda-forge::gcc_linux-64

已安装包

1
$ conda list

移除包

1
$ conda uninstall {package}

安装包

1
2
3
4
5
6
7
8
# 默认包
$ conda install {package}

# 指定channel
$ conda install {channel}::{package}

# 指定版本
$ conda install {package}={version}

Trouble Shotting

GLIBCXX_3.4.30 not found

1
ImportError: /home/wii/.miniconda3/envs/ml/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/wii/.miniconda3/envs/ml/lib/python3.12/site-packages/paddle/base/libpaddle.so)

可以通过如下命令,查看当前 gcc 支持的 GLIBCXX 版本。

1
$ strings /path/to/libstdc++.so.6 | grep GLIBCXX

这个报错通常是运行的程序依赖的 gcc 版本和已经安装的 gcc 版本不匹配,要么太高,要么太低。安装兼容版本的 gcc 即可。

libstdcxx-ng 11.2.0.* is not installable

1
libstdcxx-ng 11.2.0.*  is not installable because it conflicts with any installable versions previously reported

这个报错是在 conda 环境,安装 gcc 13.3.0 时报的错。原因是已经安装 libstdcxx-ng 11.2.0.* ,和要安装的 gcc 13.3.0 出现依赖冲突。可以先卸载。

1
$ conda uninstall libstdcxx-ng # 当然,大概率会失败

可以重新创建环境,并添加 channel conda-forge。

1
$ conda create --name {env-name} --channel=conda-forge conda-forge::gcc=13.2.0

推荐

1
$ conda create --name ml --channel=conda-forge conda-forge::gcc=13.2.0 conda-forge::python=3.12.4 conda-forge::jupyterlab

常用包

1
2
3
# gcc & g++, 指定版本
conda-forge::gxx=8.5.0
conda-forge::gcc=8.5.0

机器学习 - 特征工程

特征分类

  • 按数据类型分类

    • 数值特征

      • 离散数值特征,有限的离散值,比如年龄
      • 连续数值类型,任意实数,比如体重
    • 分类特征

      • 有序分类特征,类别之间存在顺序,比如初中、高中、大学
      • 无序分类特征,类别之间没有顺序,比如血型
  • 按生成方式分类

    • 原始特征,直接从数据集中获取的未经处理的特征
    • 衍生特征,通过对原始特征进行数学运算、转换或组合而生成的新特征
  • 按特征稳定性分类

    • 稳定特征,在不同时间或数据集中变化较小的特征,如人的性别
    • 不稳定特征,容易随时间或数据分布变化而变化的特征,比如股票价格

Kaggle - command line tool

安装

详见文档Github 仓库

1
$ pip install kaggle

User Profile 页面 Create New Token,并将下载的文件放到 ~/.kaggle/kaggle.json

使用

列出进行中的比赛

1
$ kaggle competitions list

列出比赛的文件

1
$ kaggle competitions files {competition}

下载数据

1
2
3
$ kaggle competitions download -f {filename} -c {competition} # 下载指定文件
$ kaggle competitions download -c {competition} # 下载所有文件到当前工作路径
$ kaggle competitions download -p /path/to/save -c {competition} # 指定下载路径

ar

打包多个静态库

1
2
3
4
# liba.a, libb.a
$ mkdir objects_a && cd objects_a && ar -x ../liba.a && cd ..
$ mkdir objects_b && cd objects_b && ar -x ../libb.a && cd ..
$ ar crs libc.a objects_a/*.o objects_b/*.o

机器学习 - 入门

概述

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。其专门研究计算机怎样模拟或实现人类的学习行为,已获得新的知识或技能,重新组织已有的知识机构使之不断改善自身的性能。

流程

根据《Data Science Solutions》,完整的解答工作流程包含七个阶段:

  • 问题或课题定义
  • 获取训练及测试样例集
  • 整理、预处理、清洗数据
  • 分析、识别模式、探索数据
  • 建模、预测、解决问题
  • 可视化、汇报、呈现问题解决步骤和最终解决方案
  • 提交结果

上述工作流指出了通用的步骤顺序。但是,有时候会有些例外。

  • 需要将多个步骤组合在一起
  • 需要通过可视化进行分析
  • 将一些步骤提前
  • 某些步骤重复多次
  • 跳过某些步骤

目标

数据科学解决方案流程通常有七个主要目标:

  • 分类(Classifying)
  • 关联(Correlating)
  • 转换(Converting)
  • 补全(Completing)
  • 修正(Correcting)
  • 新建(Creating)
  • 可视化(Charting)

问题分类

  • 监督学习(Supervised Learning),数据带有明确的标签或目标值
    • 分类问题(Classification)
      • 目标,将数据点划分到不同的类别中
      • 示例,垃圾邮件判定、良性/恶性肿瘤判定
    • 回归问题(Regression)
      • 目标,预测一个连续的值
      • 示例,房价、股票价格
  • 无监督学习(Unsupervised Learning),数据没有明确的标签
    • 聚类
    • 降维
  • 强化学习(Reinforcement Learning),智能体通过与环境进行交互并根据奖励信号来学习最佳策略
  • 半监督学习(Semi-supervised Learning),使用少量有标签数据和大量无标签数据进行学习
  • 主动学习(Active Learning),通过选择最有价值的数据进行标注来提高学习效率
  • 迁移学习(Transfer Learning),利用已有的知识和模型来解决新的但相关的问题

监督学习

回归问题

模型

线性回归(Linear Regression)

最基本的回归模型,它假设自变量和因变量之间存在线性关系。

参考