🎈边走、边悟🎈迟早会好 |
机器学习是一种利用数据来改进模型性能的计算方法,属于人工智能的一个分支。它旨在让计算机系统通过经验自动改进,而不需要明确编程。
类型
评估指标
分类:
回归:
交叉验证
通过将数据集划分为若干子集,反复进行训练和验证,以评估模型的性能稳定性和泛化能力。
通过在损失函数中添加正则项,防止过拟合:
选择对模型性能影响较大的特征,去除冗余或相关性高的特征。
当某一类样本数量远多于其他类时,模型可能偏向于预测多数类。解决方法包括重采样、调整分类阈值、使用加权损失函数等。
鸢尾花数据集是机器学习领域中非常经典的数据集,由英国统计学家和生物学家Fisher在1936年提出。该数据集包含150个样本,每个样本有4个特征:花萼长度、花萼宽度、花瓣长度和花瓣宽度。目标是根据这些特征将鸢尾花分为三类:山鸢尾(Setosa)、变色鸢尾(Versicolor)和维吉尼亚鸢尾(Virginica)。
# 示例代码(以KNN为例) from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score, classification_report, confusion_matrix # 加载数据 iris = load_iris() X = iris.data y = iris.target # 数据划分 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 模型训练 knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) # 模型预测 y_pred = knn.predict(X_test) # 模型评估 print("Accuracy:", accuracy_score(y_test, y_pred)) print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred)) print("Classification Report:\n", classification_report(y_test, y_pred)) 房价预测是回归问题的经典案例之一,通常使用波士顿房价数据集。该数据集包含506个数据点,每个数据点有13个特征(如房间数量、房龄、犯罪率等),目标是预测房屋的中位数价格。
# 示例代码(以线性回归为例) from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # 加载数据 boston = load_boston() X = boston.data y = boston.target # 数据划分 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 模型训练 lr = LinearRegression() lr.fit(X_train, y_train) # 模型预测 y_pred = lr.predict(X_test) # 模型评估 mse = mean_squared_error(y_test, y_pred) rmse = mse ** 0.5 print("MSE:", mse) print("RMSE:", rmse) 手写数字识别是计算机视觉中的经典问题,通常使用MNIST数据集。该数据集包含60000个训练样本和10000个测试样本,每个样本是28x28像素的灰度图像,代表手写的数字0-9。
# 示例代码(以简单的多层感知机为例) from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras.utils import to_categorical # 加载数据 (X_train, y_train), (X_test, y_test) = mnist.load_data() # 数据预处理 X_train = X_train.reshape(-1, 28*28).astype('float32') / 255.0 X_test = X_test.reshape(-1, 28*28).astype('float32') / 255.0 y_train = to_categorical(y_train, 10) y_test = to_categorical(y_test, 10) # 构建模型 model = Sequential([ Flatten(input_shape=(28*28,)), Dense(128, activation='relu'), Dense(64, activation='relu'), Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2) # 评估模型 loss, accuracy = model.evaluate(X_test, y_test) print("Loss:", loss) print("Accuracy:", accuracy) 🌟感谢支持 听忆.-CSDN博客

| 🎈众口难调🎈从心就好 |