机器学习基础从零理解核心概念与算法分类1. 什么是机器学习机器学习Machine Learning ├── 定义让计算机从数据中自动学习规律无需显式编程 ├── 核心思想数据 → 模型 → 预测 ├── 与传统编程的区别 │ ├── 传统编程规则 数据 → 结果 │ └── 机器学习数据 结果 → 规则 └── 应用图像识别、语音识别、推荐系统、自动驾驶、医疗诊断2. 学习类型机器学习三大范式 ├── 监督学习Supervised Learning │ ├── 有标签数据 │ ├── 分类离散输出猫/狗 │ └── 回归连续输出房价/温度 ├── 无监督学习Unsupervised Learning │ ├── 无标签数据 │ ├── 聚类K-Means、DBSCAN │ └── 降维PCA、t-SNE └── 强化学习Reinforcement Learning ├── 智能体与环境交互 ├── 奖励信号驱动 └── 应用游戏AI、机器人控制3. 算法分类速查算法分类 ├── 监督学习 │ ├── 分类 │ │ ├── 逻辑回归Logistic Regression │ │ ├── 支持向量机SVM │ │ ├── 决策树Decision Tree │ │ ├── 随机森林Random Forest │ │ ├── K近邻KNN │ │ ├── 朴素贝叶斯Naive Bayes │ │ └── XGBoost / LightGBM │ └── 回归 │ ├── 线性回归Linear Regression │ ├── 岭回归Ridge │ ├── Lasso 回归 │ └── 决策树回归 ├── 无监督学习 │ ├── 聚类 │ │ ├── K-Means │ │ ├── DBSCAN │ │ └── 层次聚类 │ └── 降维 │ ├── PCA │ ├── t-SNE │ └── UMAP └── 深度学习 ├── CNN图像 ├── RNN/LSTM序列 ├── TransformerNLP └── GAN生成4. 核心概念4.1 偏差-方差权衡偏差Bias模型预测与真实值的偏离程度 ├── 高偏差欠拟合模型太简单 └── 解决增加模型复杂度 方差Variance模型对训练数据变化的敏感程度 ├── 高方差过拟合模型太复杂 └── 解决正则化、增加数据 偏差-方差权衡 ├── 总误差 偏差² 方差 噪声 ├── 目标找到偏差和方差的平衡点 └── 方法交叉验证选择最优模型复杂度4.2 过拟合与欠拟合# 过拟合示例fromsklearn.preprocessingimportPolynomialFeaturesfromsklearn.linear_modelimportLinearRegressionfromsklearn.pipelineimportmake_pipelineimportnumpyasnp# 欠拟合线性模型拟合非线性数据model_underfitLinearRegression()# 过拟合高次多项式拟合少量数据model_overfitmake_pipeline(PolynomialFeatures(degree15),LinearRegression())# 合适适当复杂度model_goodmake_pipeline(PolynomialFeatures(degree3),LinearRegression())4.3 交叉验证fromsklearn.model_selectionimportcross_val_score,KFold# K 折交叉验证kfoldKFold(n_splits5,shuffleTrue,random_state42)scorescross_val_score(model,X,y,cvkfold,scoringaccuracy)print(f准确率:{scores.mean():.4f}±{scores.std():.4f})5. 数据预处理基础importpandasaspdimportnumpyasnpfromsklearn.preprocessingimportStandardScaler,LabelEncoderfromsklearn.model_selectionimporttrain_test_split# 加载数据datapd.read_csv(data.csv)# 缺失值处理data.fillna(data.mean(),inplaceTrue)# 均值填充# 编码分类变量leLabelEncoder()data[category]le.fit_transform(data[category])# 特征缩放scalerStandardScaler()X_scaledscaler.fit_transform(X)# 划分数据集X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.2,random_state42)6. 第一个机器学习项目fromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportaccuracy_score,classification_report# 加载数据集irisload_iris()X,yiris.data,iris.target# 划分数据集X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.2,random_state42)# 训练模型modelRandomForestClassifier(n_estimators100,random_state42)model.fit(X_train,y_train)# 预测y_predmodel.predict(X_test)# 评估print(f准确率:{accuracy_score(y_test,y_pred):.4f})print(classification_report(y_test,y_pred,target_namesiris.target_names))总结概念说明监督学习有标签分类/回归无监督学习无标签聚类/降维偏差-方差欠拟合 vs 过拟合交叉验证评估模型泛化能力特征工程数据预处理是关键