机器学习实战指引
2025-11-08 17:43:26 0 举报
AI智能生成
《机器学习实战指引》是一本面向机器学习实践者的权威参考书,不仅详细介绍了核心的机器学习算法、模型训练技巧,还包括了数据预处理、特征工程以及模型评估和优化等关键步骤。本书采用了大量的Python代码示例,辅以简洁的图表和直观的解释,使得无论是初学者还是有经验的开发人员都能通过实际操作来加深对算法的理解。 本书不仅覆盖了传统的监督学习方法如线性回归、逻辑回归和决策树,还包括了集成学习、无监督学习以及深度学习的技术,如神经网络和强化学习。除此之外,作者还强调了解决现实世界问题时遇到的挑战,如过拟合、数据不平衡和模型的泛化能力。 对于那些希望从理论走向实践,并且愿意系统地学习机器学习各个方面的读者,本书无疑是一份宝贵的资源。无论是作为学习工具还是参考手册,《机器学习实战指引》都将助你在人工智能领域稳步前行。
作者其他创作
大纲/内容
1 数据导入
pandas.read_csv
train
test
dataset
2 工程对象
数据初始化
分类任务特征
X_class
y_class
feature_names
回归任务特征
X_reg
y_reg
feature_names
聚类任务特征
clustering_data
模型初始化
分类
class_results
best_class_model
回归
reg_results
best_reg_model
聚类
cluster_results
best_cluster_model
最终模型
best_model
best_params
日志初始化
3 数据处理
1 数据预处理
缺失值处理
fillna
布尔特征
mode()[0]
数据特征
median()
mean()
时间特征
dropna
异常值处理
百分位长尾处理
quantile
数据类型转换
astype
离群点处理
孤单森林算法
重复值处理
drop_dulplicates(subset='xxx')
可视化验证
特征描述
pandas.describe()
pandas.info()
pandans.corr()
图像表达
.hist(bins=xx)
sns.jointplot
sns.heatmap(self.data[features].corr(), cmap='Reds', annot=True, fmt=".2f")
plt.histplot
sns.countplot
2 特征工程
数据标准化
MinMaxScaler
一般情况下train数据用fit_transfrom,val和test用transform
StandardScaler
LabelEncoder
OneHotEncoder
特征交互
时间序列处理
pd.to_datetime
dt.dayofweek
dt.days
窗口滑动
词向量处理
word2vec
3 X,y数据初始化
X
删除无关特征
data.drop(columns=[xxx])
y
只保留标签特征
4 模型创建
1 数据集划分
train_test_split(X, y, test_size=0.3, random_state=42, stratify=y)
2 常用模型
分类
LogisticRegression(class_weight='balanced', max_iter=1000, random_state=42)
DecisionTreeClassifier(class_weight=class_weight_dict, random_state=42)
类别不平衡处理
RandomForestClassifier(class_weight='balanced_subsample', n_estimators=100,random_state=42)
XGBClassifier(scale_pos_weight=sum(self.y_train == 0) / sum(self.y_train == 1), use_label_encoder=False, eval_metric='logloss', random_state=42)
LGBMClassifier(class_weight='balanced', random_state=42)
CatBoostClassifier(auto_class_weights='Balanced', verbose=0, random_state=42)
回归
LinearRegression()
DecisionTreeRegressor(random_state=42)
RandomForestRegressor(n_estimators=100, random_state=42)
XGBRegressor(random_state=42)
LGBMRegressor(random_state=42)
CatBoostRegressor(verbose=0, random_state=42)
聚类
KMeans(n_clusters=3, random_state=42)
计算最佳K值-肘部法
先标准化StandardScaler
计算双重变化率
DBSCAN(eps=0.5, min_samples=5)
AgglomerativeClustering(n_clusters=3)
集合学习
Stacking
5 模型训练
1 训练
训练方法
model.fit
kfold
early_stopping_rounds
计算损失
model.predit
model.predict_proba
2 评估
分类
f1_score(y_val, y_pred)
accuracy_score(y_val, y_pred)
roc_auc_score(y_val, y_proba)
回归
r2_score(y_val, y_pred)
mean_squared_error(y_val, y_pred)
mean_absolute_error(y_val, y_pred)
聚类
silhouette_score(X_scaled, labels)
可视化聚类结果
1 降维
PCA(n_components=2)
LinearDiscriminantAnalysis(n_components=min(2, len(np.unique(y))-1))
2 画图
plt.scatter(X_pca[:, 0], X_pca[:, 1], alpha=0.6)
plt.scatter(X_lda[:, 0], X_lda[:, 1], c=y, cmap='viridis', alpha=0.6)
解释方差比
pca.explained_variance_ratio_
6 模型解释
model.feature_importances_
SHAP
shap.TreeExplainer(model)
7 超参优化
GridSearchCV
best_score_
best_params_
RandomizedSearchCV
best_score_
best_params_
BayesianOptimization
内嵌方法中使用相应评估指标计算得分
np.mean(cross_val_score(model, X, y, cv=3, scoring='f1'))
optimizer.maximize(init_points=5, n_iter=10)
optimizer.max['target']
optimizer.max['params']
8 模型重训
填充最佳参数
**best_params
'grid_search': grid_search.best_params_
'random_search': random_search.best_params_
'bayesian_opt': optimizer.max['params']
9 模型预测
test集合上验证
输出csv
xxx.to_csv
10 输出报告
plot画出相应的评估结果
f1
r2
Silhouette
0 条评论
下一页