认识机器学习 机器学习实战第一章

学习目标

机器学习实战第一章


学习内容

1. 什么是机器学习?

答:简单地说,机器学习就是把无序的数据转换成有用的信息。

2. 数据来源?

从互联网上可以获取大量的人为数据,比如某用户的购物记录,刷过的短视频记录,这占了很大一部分比例;但是另一部分非人为数据也变得越来越重要,比如传感器数据,尤其是移动手机的封装的各种小传感器数据。如何从移动计算和传感器产生的海量数据中抽取有价值的信息是一个很重要的研究课题。

3. 机器学习的主要任务?

监督学习:分类、回归;无监督学习:聚类、密度估计、特征降维。

4. 如何选择合适的算法?

  1. 首先考虑目的。如果要预测目标的值,则选择监督学习,反之,选择无监督学习。进一步来说,在选择监督学习后,如果目标变量是离散的,选择分类方法,如果是连续的,选择回归方法;在选择无监督学习后,如果进一步需要将数据划分为组别,可以选择聚类算法,如果还需要估计数据与每个组别的相似程度,则选择密度估计算法。
  2. 其次是考虑数据。数据是离散还是连续,特征值是否存在缺失、数据中是否存在异常值、某些特征出现的频率等等。
  3. 上述考虑只是缩小选择范围,并不一定是最好的,还需要考虑最后的效果。

5. 机器学习开发的步骤?

  1. 收集数据。如网络爬虫、物联网设备数据、使用公开源数据。
  2. 数据预处理。主要是为了保证得到的数据格式符合算法的输入。
  3. 分析输入数据。主要是为了保证数据集中没有垃圾数据。人工分析得到的数据是否有异常值(如空值、特别大或小的值)、能否看出规律以识别出模式、特征维度等。
  4. 训练算法。对于监督学习,利用训练集,抽取知识和信息,得到计算机可以处理的格式,方便后续使用;对于无监督学习,不需要此步。
  5. 测试算法。对于监督学习,从第四步得到知识信息,进行测试评估算法的效果;对于无监督学习,使用其他评测手段来检验算法的有效性。效果不好,可以回炉重造。
  6. 使用算法。将效果达到需求的算法转换成应用,执行实际任务。

6. 开发语言?

  1. 虽然个人认为python一点都不好用,但是大家都在用,那就勉为其难地接受它吧哈哈哈哈哈。
  2. 书中提到Python比java和C好理解(本人也不这样认为),但是python的性能并不是很好(比Java和C低),于是想出来了用python调用C代码,可谓是天秀。
  3. 让本人接受的点倒是有,比如python的矩阵运算清晰简练、有很多的第三方库比如NumPy,方便机器学习算法的实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是《机器学习实战》第六章应用案例中人脸识别的代码,包括数据预处理、特征提取和分类器训练等过程: ``` # 导入所需的库 import os import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from sklearn.svm import SVC from sklearn.metrics import accuracy_score import cv2 # 定义数据预处理函数 def preprocess_data(data_path): images = [] labels = [] for sub_folder in os.listdir(data_path): sub_folder_path = os.path.join(data_path, sub_folder) for file_name in os.listdir(sub_folder_path): if file_name.startswith('.'): continue image_path = os.path.join(sub_folder_path, file_name) image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) image = cv2.resize(image, (128, 128)) images.append(np.asarray(image, dtype=np.uint8)) labels.append(sub_folder) return images, labels # 定义特征提取函数 def extract_features(images): features = [] for image in images: hist = cv2.calcHist([image], [0], None, [256], [0, 256]) features.append(hist) features = np.asarray(features) features = np.reshape(features, (features.shape[0], -1)) return features # 加载数据 data_path = 'path_to_data_folder' images, labels = preprocess_data(data_path) # 特征提取 features = extract_features(images) # 标签编码 le = LabelEncoder() labels = le.fit_transform(labels) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42) # 训练分类器 clf = SVC(kernel='linear', C=1.0, random_state=42) clf.fit(X_train, y_train) # 预测并计算准确率 y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print('Accuracy: %.2f%%' % (accuracy * 100.0)) ``` 需要注意的是,以上代码只是一个示例,请根据实际情况进行修改和调整。同时,为了让模型具有更好的性能,建议使用更多的训练数据和更复杂的特征提取和分类器模型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

creator_gzw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值