kaggle kernel 学习笔记

这篇博客主要记录了在Kaggle Kernel上的学习,涉及如何处理缺失值(如通过平均值、中位数插值),分类变量的处理(包括序数变量和名义变量的编码),以及XGBOOST模型的简单应用。此外,还提到了文本特征提取技术,如TF-IDF和Doc2Vec,以及它们在文档向量化中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习链接

https://www.kaggle.com/learn/intermediate-machine-learning

3.Missing Values

1.drop columns

# Get names of columns with missing values
cols_with_missing = [col for col in X_train.columns if X_train[col].isnull().any()]
# Drop columns in training and validation data
reduced_X_train = X_train.drop(cols_with_missing, axis=1)

2.impute(插值)
e.g. 平均值插值,中位数插值

# Fill in the lines below: imputation
my_imputer  = SimpleImputer(missing_values=np.nan, strategy='median')
imputed_X_train = pd.DataFrame(my_imputer.fit_transform(X_train))
imputed_X_valid = pd.DataFrame(my_imputer.transform(X_valid))

4.Categorical Variables

1.ordinal var/nominal var
序数变量,热编码one-hot(一般不用于超过15 different values)
label encoding: 转化为有大小顺序的数字
one-hot: 多少个子类别就增加多少column

# Apply one-hot encoder to each column with categorical data
OH_encoder = OneHotEncoder(handle_unknown='ignore', sparse=False)
OH_cols_train = pd.DataFrame(OH_encoder.fit_transform(X_train[object_cols]))
OH_cols_valid = pd.DataFrame(OH_encoder.transform(X_valid[object_cols]))

# One-hot encoding removed index; put it back
OH_cols_train.index = X_train.index
OH_cols_valid.index = X_valid.index

# Remove categorical columns (will replace with one-hot encoding)
num_X_train = X_train.drop(object_cols, axis=1)
num_X_valid = X_valid.drop(object_cols, axis=1)

# Add one-hot encoded columns to numerical features
OH_X_train = pd.concat([num_X_train, OH_cols_train], axis=1)
OH_X_valid = pd.concat([num_X_valid, OH_cols_valid], axis=1)

也可以得到one-hot编码
pd.get_dummies( df, columns = cols_to_transform )

11.XGBOOST

xgboost的简单使用,e.g. n_estimator,n_jobs,eval_set

Other

1.tf-idf
term-frequency * inverse-document-frequency
tf是词频,idf逆文档频率
note:
每一个词语在不同的文档的tf是不同的, 但是其idf是相同的
2.Doc2vec
单词之间的位置关系(word2vec) + 单词来自的文档关系(doc2vec)
https://zhuanlan.zhihu.com/p/36886191
https://github.com/nfmcclure/tensorflow_cookbook/tree/master/07_Natural_Language_Processing/07_Sentiment_Analysis_With_Doc2Vec
训练document_embeding:
1.concat to the end of word_embeding(文档向量和单词向量的长度不一定相等)
2.在权重矩阵中追加文档id对应的embeding(限制文档的vec长度 == word embeding长度,较小数据集使用)
学习两个嵌入矩阵

# Define Embeddings:
embeddings = tf.Variable(tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0))
doc_embeddings = tf.Variable(tf.random_uniform([len(texts), doc_embedding_size], -1.0, 1.0))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值