ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Python机器学习入门系列-第1篇:机器学习环境搭建与第一个模型

Python机器学习入门系列-第1篇:机器学习环境搭建与第一个模型 想来你或许听闻过好多有关人工智能、机器学习的消息, 感觉颇为神奇, 然而又因觉其门槛太高而不敢尝试。实际上, 机器学习并非如你所认为的那样困难。于这篇文章之中, 我将运用最为通俗易懂的言语, 引领你自零起始构建机器学习环境, 并且亲手培育出你的首个机器学习模型, 整个进程宛如搭建积木那般简易。准备好了吗让我们开始吧一、机器学习到底是什么首先, 不要被“机器学习”这个称谓给吓到。用通俗易懂的话来讲, 关于机器学习, 它指的是让计算机能够从数据当中自行“学会”规律。换个情形来讲呢: 当你要去教导一个小孩子去认识水果的时候, 你会采取怎样的做法呢? 你首先会选取一个苹果展示给他瞧, 然后告知他“这是苹果”紧接着再挑选一个梨呈现给他看, 并且说道“这是梨”。如此这般让他观看的次数增多以后, 小孩子自身便能够学会分辨苹果与梨了。在机器学习当中, 亦是如此这般的道理, 我们将诸多“带有答案的例题”呈现给计算机, 此所谓训练数据, 计算机凭借自身能力总结归纳出其中规律而后便能够针对未曾见过的新颖题目作出判断。今天我们就要用这个思路让计算机学会识别三种不同的鸢尾花。二、搭建开发环境首先, 你得进行安装, 此安装建议是3.8以上版本。待安装完成之后, 把命令行给打开, 输入下面这些命令用以安装四个核心库:pip install scikit-learn pandas numpy matplotlib这四个库各有分工安装完成后写一段代码检查一下是否安装成功# 检查环境 import sklearn; print(fscikit-learn: {sklearn.__version__}) import pandas as pd; print(fpandas: {pd.__version__}) import numpy as np; print(fnumpy: {np.__version__}) import matplotlib; print(fmatplotlib: {matplotlib.__version__}) print(所有库安装成功)如果没报错看到版本号输出说明环境就搭建好了三、认识我们的第一个数据集鸢尾花Iris数据集乃机器学习范畴里最为经典的数据集, 等同于编程领域的“Hello World”, 它记载了150朵鸢尾花的4个测量数据。这一百五十朵花, 被均匀地划分成了三类, 分别是山鸢尾、变色鸢尾以及维吉尼亚鸢尾, 每一类的数量是五十朵。我们所设定的目标是, 把这些数据呈现给计算机, 使得它能够基于四个测量值去判别一朵花归属于哪一类。先加载数据看一看from sklearn.datasets import load_iris iris load_iris() print(f数据形状: {iris.data.shape}) # 输出: (150, 4) print(f特征名称: {iris.feature_names}) print(f花的种类: {iris.target_names}) # 输出: # 数据形状: (150, 4) → 150条数据每条4个特征 # 花的种类: [setosa versicolor virginica] # 各类别数量: [50 50 50] → 每种花各50朵数据很均衡四、训练第一个模型KNN分类器运行时所采用的是一个被称作KNN也就是K近邻的算法, 该算法的原理具备相当直观的特性:倘若你打算判定一朵花究竟是何种品种, 那就去寻觅它周遭距离最近的K朵花, 瞧瞧这K朵花之中哪一种数量最为众多, 进而判定它归属于哪一种。恰似你要是想弄明白一个人的性格如何, 瞅瞅他最为亲近的3个朋友是怎样的人, 大约也就知晓了。训练过程分为三步首先, 将数据区分为“练习题”以及“考试题”。就此, 我们把占数据总量80%的部分用作练习题, 也就是训练集了。同时, 把占数据总量20%的部分用作考试题, 也就是测试集了。随后, 计算机借助练习题去学习规律, 进而通过考试题对学习效果加以验证。第二步: 去创建KNN模型, 接着对其展开训练。要使得计算机“看”那些练习题, 从而记住每一个数据所具备的特点以及与之对应的答案。第三步预测并评估。用考试题来测试看看计算机答对了多少。from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier iris load_iris() # 第一步划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split( iris.data, iris.target, test_size0.2, random_state42 ) # 第二步创建KNN模型K3看最近3个邻居 knn KNeighborsClassifier(n_neighbors3) knn.fit(X_train, y_train) # 训练模型 # 第三步预测并评估 y_pred knn.predict(X_test) # 对考试题进行预测 from sklearn.metrics import accuracy_score accuracy accuracy_score(y_test, y_pred) print(f模型准确率: {accuracy:.2%}) # 输出: 模型准确率: 100.00%五、用训练好的模型预测新花模型训练完成了, 其准确率达到了 100%当下, 我们要去模拟一种真实的情形——你察觉到了一朵全新的鸢尾花, 测量了它的各项相关数据, 想要弄清楚它究竟属于什么品种。from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier iris load_iris() # 第一步划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split( iris.data, iris.target, test_size0.2, random_state42 ) # 第二步创建KNN模型K3看最近3个邻居 knn KNeighborsClassifier(n_neighbors3) knn.fit(X_train, y_train) # 训练模型 # 第三步预测并评估 y_pred knn.predict(X_test) # 对考试题进行预测 # 一朵新花的数据: [花萼长, 花萼宽, 花瓣长, 花瓣宽] new_flower [[5.1, 3.5, 1.4, 0.2]] prediction knn.predict(new_flower) predicted_name iris.target_names[prediction[0]] print(f预测结果: {predicted_name}) # 输出: 预测结果: setosa模型准确地判断出这朵花是山鸢尾再试一朵如果花瓣更长更宽6.3, 3.3, 6.0, 2.5花瓣大小是区分不同鸢尾花的关键特征 , 模型会由此作出维吉尼亚鸢尾的判断 , 花瓣大小确实是区分不同鸢尾花的关键特征六、小结祝福你呀你已然达成了人生里头首一个机器学习项目。来让我们对整个进程予以回顾:先进行安装, 再加载和机器学习相关的库, 接着加载数据集, 也就是鸢尾花数据, 随后划分训练集和测试集, 之后运用KNN算法训练模型, 最后用测试集对模型准确率进行评估。这实际上就是所有机器学习项目所共有的通用流程, 不管是怎样复杂的模型, 其核心步骤都是这五步。在下下一篇的文章里头, 我们将要去学习机器学习之中最为关键重要的那一步, 也就是数据预处理。鉴于真实世界的那些数据常常是杂乱无章又糟糕恶劣的, 所以只有学会对数据进行清洗, 才能够让模型展现出真正的强大威力来。
返回列表