cs231n斯坦福基于卷积神经网络的CV学习笔记(一)KNN和线性分类器/分类器损失/反向传播

绪论:随着计算能力和数据量的提高,出现PASCAL和ImageNet高质量的数据集,使得神经网络成为可能(训练)

一,KNN图像分类算法

  1. python+Numpy基础
    可参看https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit
  2. 图像分类任务是很困难的
  3. 运用数据集CIFAR10,实现最邻近算法分类(缺点:训练时间很短,但测试时间很长)
    这里写图片描述
  4. K最近邻算法,找出K个最近点(曼哈顿距离或欧氏距离),选取投票最多的,K&Distance是超参数

这里写图片描述

如何选取K和距离指标

这里写图片描述
这里写图片描述
这里写图片描述
#在图像上KNN不常用,测试时间长,向量化距离用于比较图像不常用

二,线性分类器

单独的线性边界划分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python代码进行有监督学习训练的示例,包括选择SVM支持向量机、逻辑回归、DNN神经网络、XGboost、KNN分类器: 1. SVM支持向量机 ```python from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建SVM模型 svm_model = svm.SVC(kernel='linear') # 训练模型 svm_model.fit(X_train, y_train) # 预测测试集 y_pred = svm_model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("SVM模型准确率为:", accuracy) ``` 2. 逻辑回归 ```python from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建逻辑回归模型 logistic_model = LogisticRegression() # 训练模型 logistic_model.fit(X_train, y_train) # 预测测试集 y_pred = logistic_model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("逻辑回归模型准确率为:", accuracy) ``` 3. DNN神经网络 ```python from keras.models import Sequential from keras.layers import Dense from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建DNN模型 dnn_model = Sequential() dnn_model.add(Dense(32, input_dim=X.shape[1], activation='relu')) dnn_model.add(Dense(1, activation='sigmoid')) # 编译模型 dnn_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # 训练模型 dnn_model.fit(X_train, y_train, epochs=50, batch_size=32) # 预测测试集 y_pred = dnn_model.predict_classes(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("DNN模型准确率为:", accuracy) ``` 4. XGboost ```python import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建XGboost模型 xgb_model = xgb.XGBClassifier() # 训练模型 xgb_model.fit(X_train, y_train) # 预测测试集 y_pred = xgb_model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("XGboost模型准确率为:", accuracy) ``` 5. KNN分类器 ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建KNN模型 knn_model = KNeighborsClassifier() # 训练模型 knn_model.fit(X_train, y_train) # 预测测试集 y_pred = knn_model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("KNN模型准确率为:", accuracy) ``` 以上是使用Python代码进行有监督学习训练的示例,其中包括了SVM支持向量机、逻辑回归、DNN神经网络、XGboost、KNN分类器的代码实现。具体选择哪种算法,需要根据具体的数据集和任务来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值