提交 db36d344 编写于 作者: W wizardforcel

2019-12-05 21:42:41

上级 cfcfe544
......@@ -46,7 +46,7 @@
如果我们说机器学习是人工智能的一个分支,那么深度学习就是机器学习的一个分支。
**深度学习**是一组机器学习算法,它们使用能够从经验中学习的复杂神经网络。 这些系统必须根据现有示例进行培训
**深度学习**是一组机器学习算法,它们使用能够从经验中学习的复杂神经网络。 这些系统必须根据现有示例进行训练
它如何工作?
......
......@@ -16,7 +16,7 @@
监督学习基于**标记的训练数据**
监督学习的基础是称为培训数据的数据和一组培训示例。
监督学习的基础是称为训练数据的数据和一组训练示例。
带标签的训练集具有预测其他对象上未知标签的特征。
......
......@@ -4,7 +4,7 @@
为什么要使用 Scikit-learn 进行机器学习?
在讨论“为什么要被用作或推荐为 python 编程语言的最佳免费软件机器学习库之前,我们对 scikit-learn( **sklearn** )了解甚少,这一点很重要。
在讨论“为什么要被用作或推荐为 python 编程语言的最佳免费软件机器学习库之前,我们对 scikit-learn(**sklearn**)了解甚少,这一点很重要。
......@@ -20,7 +20,7 @@ Sсіkіt-lеаrn(**sklearn**)是一种免费使用的机器学习模块。
基于以下原因,我建议使用 scikit-learn
**1.使用各种工具简单易学**
**1\. 使用各种工具简单易学**
Sсіkіt-lеаrn 提供了很多简单的,еаѕу到 lеаrnаlgоrіthmѕ是рrеttуmuсh 只有 rеԛuіrеуоurdаtа着 tоbеоrgаnіzеd 在 thеrіghtwауbеfоrе可以运行 _whаtеvеrсlаѕѕіfісаtіоn,rеgrеѕѕіоn,оr 集群аlgоrіthm 你 nееd[HTG1。_
......@@ -28,33 +28,32 @@ Sсіkіt-lеаrn 提供了很多简单的,еаѕу到 lеаrnаlgоrіthmѕ
Scikit 学习有很多方法可以帮助您找到正确的变量和变量。 有了一项新的工作,一个新的数据科学家就可以在几分钟之内做出最准确的预测。
**2.解决不同类型问题的能力**
**2、. 解决不同类型问题的能力**
Scikit-learn 可以在三种语言中使用三种不同的知识,即监督学习,无监督学习和重新学习(AlhhalGо)。
Scikit-learn 可以用于机器学习中三种不同的问题,即监督学习,无监督学习和强化学习(AlрhаGо)。
在没有监督学习的情况下,其数据集中就没有“您”的踪影。 还原和聚类是双重原因
无监督学习的情况下,其数据集中就没有“您”的踪影。降维和聚类是两个例子
S-Sir-已将诸如 PrasenсіраlCоmроnеntAnál 之类的各种实现(例如 SparsePCA,KerrnlPCA 和 IncrementalPCA 等)实现
Scikit-learn 具有主成分分析的不同实现(例如`SparsePCA`,`KerrnlPCA`和`IncrementalPCA`等)
解决了诸如 sèmédététín,réntérédіtén 等问题。 在这些问题中,“ y”是正确的。 诸如 Linitial 回归,最先,最先这样的商品。 在 sklearn 中被隐藏
监督学习涵盖的问题包括垃圾邮件检测,租金预测等等,在这些问题中,数据集展示了 y 标签。例如线性回归,随机森林,adaboost 等的模型已在 Sklearn 中实现
**3.主动和开源**
**3\. 主动和开源**
Sıііl-lärn 是一种非常活跃的解决方案,它可以极大地简化您的工作。 通常是通过 Sроtіfу,booking.com 和其他网站来进行搜索。
Sklearn 是一种非常活跃的解决方案,它可以极大地简化您的工作。 通常是通过 Sроtіfу,booking.com 和其他网站来进行搜索。
这是因为,任何人都可以确保自己的完整性,但是从我合并后的经验中,我可以告诉您很多。让我们告诉您-
所有的原因都至少有两个方面引起了争议。 每个代码都经过多次验证。 尽管这可以解决所有问题,但必须确保 sklearn 在所有情况下都具有其过时的标准。
所有的原因都至少有两个方面引起了争议。 每个代码都经过多次验证。 尽管这可以解决所有问题,但必须确保 Sklearn 在所有情况下都具有其过时的标准。
您不必一夜之间就建立起了一个“最原始的来源”之类的链接!
![sklearn, scikit-learn, \
a machine learning module for python](img/5d99d2bfbe94d99072e9460d40821ee1.jpg)
![sklearn, scikit-learn, a machine learning module for python](img/5d99d2bfbe94d99072e9460d40821ee1.jpg)
4.有助于高度不平衡的疾病的检测
4\. 有助于高度不平衡的疾病的检测
Scikit_learn 还可以通过诸如 EllipticEnvelope 和 OnSclsSVM 等多种工具在高度不平衡的数据中(99.9% 到 0.1% 的欺诈检测中)提供帮助。
Scikit-learn 还可以通过诸如 EllipticEnvelope 和 OnSclsSVM 等多种工具在高度不平衡的数据中(99.9% 到 0.1% 的欺诈检测中)提供帮助。
在这方面,在较大的尺寸范围内,具有较大性能的 Riso 隔离森林算法尤其适用。
Scikit_learn 实际上是最好的选择。
\ No newline at end of file
Scikit-learn 实际上是最好的选择。
\ No newline at end of file
......@@ -11,15 +11,15 @@
在深入探讨之前,您需要知道 CSV 或逗号分隔的值是呈现机器学习数据的最常用格式。 在机器学习数据的 CSV 文件中,您需要了解一些零件和功能。 这些包括:
* **CSV 文件标题**:CSV 文件中的标题用于将名称或标签自动分配给数据集的每一列。 如果您的文件没有标题,则必须手动命名属性。
* **注释**:当一行以井号(# )开头时,您可以在 CSV 文件中标识注释。 根据您选择的加载机器学习数据的方法,您将不得不确定是否要显示这些注释,以及如何识别它们。
* **定界符**:定界符分隔字段中的多个值,并用逗号(,)表示。 制表符(\ t)是可以使用的另一个定界符,但是必须明确指定它。
* **注释**:当一行以井号(`#`)开头时,您可以在 CSV 文件中标识注释。 根据您选择的加载机器学习数据的方法,您将不得不确定是否要显示这些注释,以及如何识别它们。
* **定界符**:定界符分隔字段中的多个值,并用逗号(`,`)表示。 制表符(`\t`)是可以使用的另一个定界符,但是必须明确指定它。
* **引号**:如果文件中的字段值包含空格,则通常会用引号引起来,并且表示该值的符号为双引号。 如果选择使用字符,则需要在文件中指定。
在确定了数据文件的这些关键部分之后,让我们继续学习如何在 Python 中加载机器学习数据的不同方法。
### 使用 Python 标准库加载数据
使用 Python 标准库,您将使用模块 CSV 和函数 reader()加载 CSV 文件。 加载后,CSV 数据将自动转换为 NumPy 数组,可用于机器学习。
使用 Python 标准库,您将使用模块 CSV 和函数`reader()`加载 CSV 文件。 加载后,CSV 数据将自动转换为 NumPy 数组,可用于机器学习。
例如,下面是一个小代码,当您使用 Python API 运行时,它将加载没有标题且包含数字字段的该数据集。 它还将自动将其转换为 NumPy 数组。
......@@ -38,13 +38,16 @@ print(data.shape)
简而言之,该代码命令程序加载一个对象,该对象可以对数据的每一行进行迭代,并且可以轻松地转换为 NumPy 数组。 运行示例代码将产生以下形状的数组:
1(768,9)
```
1 (768, 9)
```
### 用 NumPy 加载数据文件
在 Python 中加载机器学习数据的另一种方法是使用 NumPy 和 numpy.loadtxt()函数。
在 Python 中加载机器学习数据的另一种方法是使用 NumPy 和`numpy.loadtxt()`函数。
在下面的示例代码中,该函数假定您的文件没有标题行,并且所有数据都使用相同的格式。 它还假定文件 pima-indians-diabetes.data.csv 存储在当前目录中。
在下面的示例代码中,该函数假定您的文件没有标题行,并且所有数据都使用相同的格式。 它还假定文件`pima-indians-diabetes.data.csv`存储在当前目录中。
```py
# Load CSV
......@@ -56,9 +59,11 @@ print(data.shape)
```
运行上面的示例代码会将文件加载为 numpy.ndarray 并产生以下数据形状:
运行上面的示例代码会将文件加载为`numpy.ndarray`并产生以下数据形状:
```
1 (768, 9)
```
如果可以使用 URL 检索文件,则可以将以上代码修改为以下代码,同时产生相同的数据集:
......@@ -75,17 +80,20 @@ print(dataset.shape)
运行代码将产生相同的结果数据形状:
```
1 (768, 9)
```
![python pandas data load csv](img/b809845b2993e4deab4f30fe4c04c137.jpg)
### 用 Pandas 加载数据文件
加载机器学习数据的第三种方法是使用 Pandas 和 pandas.read_csv()函数。
加载机器学习数据的第三种方法是使用 Pandas 和`pandas.read_csv()`函数。
pandas.read_csv()函数非常灵活,是加载机器学习数据的最理想方法。 它返回一个 pandas.DataFrame,使您可以立即开始汇总和绘图。
`pandas.read_csv()`函数非常灵活,是加载机器学习数据的最理想方法。 它返回一个`pandas.DataFrame`,使您可以立即开始汇总和绘图。
下面的示例代码假定 pima-indians-diabetes.data.csv 文件存储在当前目录中。
下面的示例代码假定`pima-indians-diabetes.data.csv`文件存储在当前目录中。
```py
1 # Load CSV using Pandas
......@@ -97,9 +105,12 @@ pandas.read_csv()函数非常灵活,是加载机器学习数据的最理
```
您将在此处注意到,我们已将每个属性的名称明确标识为 DataFrame。 当我们运行上面的示例代码时,将打印以下形状的数据:
您将在此处注意到,我们已将每个属性的名称明确标识为`DataFrame`。 当我们运行上面的示例代码时,将打印以下形状的数据:
```
1 (768, 9)
```
如果可以使用 URL 检索文件,则可以对以上代码进行以下修改,同时生成相同的数据集:
......@@ -113,8 +124,11 @@ pandas.read_csv()函数非常灵活,是加载机器学习数据的最理
```
运行上面的示例代码将下载一个 CSV 文件,对其进行解析,并生成以下形状的已加载 DataFrame
运行上面的示例代码将下载一个 CSV 文件,对其进行解析,并生成以下形状的已加载`DataFrame`
```
1 (768, 9)
```
[下载示例和练习](https://gum.co/MnRYU)
\ No newline at end of file
......@@ -5,8 +5,7 @@
分类是机器学习任务之一。 那么什么是分类呢?
您一直都在对数据进行分类。
看看任何物体,您将立即知道它属于哪个类:它是杯子,桌子还是椅子。
这是分类的任务,计算机可以执行此操作(基于数据)。
看看任何物体,您将立即知道它属于哪个类:它是杯子,桌子还是椅子。这是分类的任务,计算机可以执行此操作(基于数据)。
本文是面向初学者的机器学习。 让我们做第一个机器学习程序
......@@ -16,11 +15,11 @@
### 训练数据
导入机器学习模块 sklearn。 (受监督)机器学习算法使用示例或训练数据。 训练阶段是机器学习算法的第一步。
导入机器学习模块`sklearn`。 (受监督)机器学习算法使用示例或训练数据。 训练阶段是机器学习算法的第一步。
**由于使用示例数据,因此请首先收集数据。** 像一组苹果和桔子的图像,并记下了特征。
**由于使用示例数据,因此请首先收集数据**像一组苹果和桔子的图像,并记下了特征。
**特征可用于区分两个类别** 特征是一种属性,例如颜色,形状或重量。 它可以表示为数值。
**特征可用于区分两个类别**。特征是一种属性,例如颜色,形状或重量。 它可以表示为数值。
关键任务之一是从训练数据中获得良好的特征。 写下每个图像的类别。 类别是类,对于苹果,您可以选择 0 类,对于橘子,您可以采用 1 类。
......@@ -28,19 +27,17 @@
![machine learning training data for classifier](img/032fd8512b1b4b91c77d473d11e46b59.jpg)
水平写入要素,该线代表第一张图像。
水平写入特征,该线代表第一张图像。
因此,这称为特征向量。 这组数字代表图像。
### 分类器
在训练阶段之后,分类器**可以做出预测**
给定一个新的特征向量,该图像是苹果还是桔子?
在训练阶段之后,分类器**可以做出预测**。给定一个新的特征向量,该图像是苹果还是桔子?
分类算法有多种类型,其中一种是决策树。
如果您有新数据,则算法可以确定新数据属于哪个类。
苹果的输出为[0],橙色的输出为[1]。
如果您有新数据,则算法可以确定新数据属于哪个类。苹果的输出为`[0]`,橙色的输出为`[1]`
所以这是新数据,然后我们简单地使算法进行预测。
......@@ -60,8 +57,7 @@ print(algorithm.predict(newData))
### 过拟合和欠拟合
通常,训练数据越多,分类器就越好。
如果您的训练数据很少(不及),那么您将没有好的预测。
通常,训练数据越多,分类器就越好。如果您的训练数据很少(不及),那么您将没有好的预测。
因此,总的来说,随着更多数据它变得更加准确。 但是有一个限制,那就是过拟合。
......
......@@ -2,9 +2,7 @@
> 原文: [https://pythonbasics.org/machine-learning-regression/](https://pythonbasics.org/machine-learning-regression/)
线性回归算法可预测连续值(例如价格,温度)。
这是针对初学者的机器学习算法系列中的另一篇文章。
这是一种有监督的学习算法,您需要收集培训数据才能使其工作。
线性回归算法可预测连续值(例如价格,温度)。这是针对初学者的机器学习算法系列中的另一篇文章。这是一种有监督的学习算法,您需要收集训练数据才能使其工作。
......@@ -12,20 +10,18 @@
### 简介
分类输出只能是离散值。 可以有[0],[1],[2]等。
如果要输出价格或其他连续值怎么办?
分类输出只能是离散值。 可以有`[0]``[1]``[2]`等。如果要输出价格或其他连续值怎么办?
然后,您使用回归算法。
假设您要根据特征预测房价。 收集数据是
的第一步。 特征可能是房间数量,以 m ^ 2 为单位的面积,邻里质量等。
的第一步。 特征可能是房间数量,以 m^2 为单位的面积,邻里质量等。
![linear regression training data](img/79a66fc75d419b006ca2189da2f75d08.jpg)
### 示例
写下特征:# area_m2。
对于我们的示例代码,如下所示。
写下特征:`#area_m2`。对于我们的示例代码,如下所示。
```py
from sklearn.linear_model import LinearRegression
......@@ -43,15 +39,13 @@ print('Price prediction: $%.2f' % prediction)
```
然后,您可以根据该数据创建绘图(如果需要)。
您看到面积与价格之间存在相关性。
然后,您可以根据该数据创建绘图(如果需要)。您看到面积与价格之间存在相关性。
这是线性关系。
您可以使用线性回归算法预测价格。
这是线性关系。您可以使用线性回归算法预测价格。
### 解释
首先,从学习的过程中导入线性回归算法,然后定义训练数据 X 和 Y,其中轴面积和 y 是价格。
首先,从学习的过程中导入线性回归算法,然后定义训练数据`X``Y`,其中`x`是面积,`y`是价格。
```py
model = LinearRegression()
......@@ -61,8 +55,7 @@ model.fit(X,y)
线性回归算法由于存在线性关系,因此我们使用训练数据来训练算法。
现在已经对算法进行了训练,您可以使用该区域进行预测了。
一个新示例,可以为您预测价格。
现在已经对算法进行了训练,您可以使用该区域进行预测了。一个新示例,可以为您预测价格。
```py
rooms = 11
......@@ -71,8 +64,7 @@ print('Price prediction: $%.2f' % prediction)
```
仅当数据集中存在线性关系时,此算法 **LinearRegression** 才有效。
如果没有,则需要多项式算法。
仅当数据集中存在线性关系时,算法`LinearRegression`才有效。如果没有,则需要多项式算法。
绘图以确认存在线性关系。
......
......@@ -22,7 +22,7 @@ poly_fit = np.poly1d(np.polyfit(X,Y, 2))
```
那将训练算法并使用二阶多项式。
训练后,您可以使用一个新示例通过调用 polyfit 来预测值。 然后它将输出一个连续值。
训练后,您可以使用一个新示例通过调用`polyfit`来预测值。 然后它将输出一个连续值。
### 示例
......
......@@ -55,19 +55,19 @@
我们从一个数据集开始
| 下雨 | 决 |
| 下雨 | 决 |
| --- | --- |
| 没有 | 没有雨伞 |
| 否 | 不打伞 |
| 是 | 打伞 |
可以简化为:
| 下雨 | decision |
| 下雨 | 决策 |
| --- | --- |
| 0 | 0 |
| 1 | 1 |
| 1 | 1 |
因此,相应的 X(特征)和 Y(决策/标签)为:
因此,相应的`X`(特征)和`Y`(决策/标签)为:
```py
X = [[0], [1]]
......
......@@ -6,8 +6,8 @@
该算法用于**分类****回归**。 在这两种使用中,输入均包含特征空间中 k 个最接近的训练示例。 另一方面,输出取决于大小写。
* 在“ K 最近邻分类”中,输出是类成员。
* 在“ K 最近邻回归”中,输出是对象的属性值。
* 在“K 最近邻分类”中,输出是类成员。
* 在“K 最近邻回归”中,输出是对象的属性值。
K 最近邻易于实现,并且能够执行复杂的分类任务。
......@@ -21,7 +21,7 @@ K 最近邻易于实现,并且能够执行复杂的分类任务。
它是一种非参数学习算法,因此不会对基础数据做任何假设。 由于大多数数据都没有遵循理论上的假设,因此是一项有用的功能。
K-Nearest Neighbors 的最大优势在于,该算法无需进行训练即可进行预测,从而可以添加新数据。
k 最近邻的最大优势在于,该算法无需进行训练即可进行预测,从而可以添加新数据。
最大的缺点是该算法难以计算高维数据的距离。
......@@ -49,11 +49,11 @@ K 最近邻有很多应用程序。
理解实际的算法是一个更好的例子。 假设我们要使用的数据集有两个变量。
任务是将带有“ X”的新数据点分类为“红色”类或“蓝色”类。
任务是将带有“X”的新数据点分类为“红色”类或“蓝色”类。
![k nearest neighbors algorithm](img/9f469ed71397ffb5172d715df52db1fd.jpg)
数据点的坐标值为 x = 45 和 y = 50
数据点的坐标值为`x = 45``y = 50`
现在我们假设 K 的值为 2(两个簇)。
......@@ -96,9 +96,9 @@ print(distances)
### k 最近邻分类器
我们用 x 和 y 值创建一个二维空间。 目标包含可能的输出类(通常称为标签)。
我们用`x``y`值创建一个二维空间。 目标包含可能的输出类(通常称为标签)。
knn 可用作分类器。 使用 scikit-learns * KNeighborsClassifier **,其中参数 n_neighbors 为 K
knn 可用作分类器。 使用 scikit-learn `KNeighborsClassifier`,其中参数`n_neighbors``K`
然后可以对新值进行预测。
......@@ -129,9 +129,9 @@ print( model.predict([[1,3]]) )
### k 最近邻回归
knn 可用于回归问题。 在下面的示例中,每月租金价格基于平方米(m2)进行预测。
knn 可用于回归问题。 在下面的示例中,每月租金价格基于平方米(m^2)进行预测。
它使用 sklearn 的 **KNeighborsRegressor** 实现。 由于数据集很小,因此将 K 设置为 2 个最近的邻居。
它使用 sklearn 的`KNeighborsRegressor`实现。 由于数据集很小,因此将 K 设置为 2 个最近的邻居。
```py
from sklearn.neighbors import KNeighborsRegressor
......
......@@ -13,7 +13,7 @@
让我们举个例子:
1. 计算机必须确定照片中是否包含猫或狗。
2. 计算机具有培训阶段和测试阶段以学习如何进行。
2. 计算机具有训练阶段和测试阶段以学习如何进行。
3. 数据科学家收集了数千张猫和狗的照片。
4. 该数据必须分为训练集和测试测试。
......@@ -29,20 +29,22 @@
容易,我们有两个数据集。
* 一个具有独立特征,称为(x)。
* 一个具有因变量,称为(y)。
* 一个具有独立特征,称为(`x`)。
* 一个具有因变量,称为(`y`)。
为了拆分它,我们这样做:
x 训练– x 测试/ y 训练– y 测试
```
x_train – x_test / y_train – y_test
```
这是一个简单的公式,对吧?
x Train 和 y Train 成为机器学习的数据,能够创建模型。
`x_train``y_train`成为机器学习的数据,能够创建模型。
创建模型后,输入 x Test,输出应等于 y Test
创建模型后,输入`x_test`,输出应等于`y_test`
模型输出与 y 测试的距离越近:模型越精确。
模型输出与`y_test`测试的距离越近:模型越精确。
```py
>>> import numpy as np
......@@ -86,8 +88,8 @@ array([[2, 3],
数据科学家可以将用于统计和机器学习的数据分为两个或三个子集。
* 两个子集将进行培训和测试。
* 三个子集将是培训,验证和测试。
* 两个子集将进行训练和测试。
* 三个子集将是训练,验证和测试。
无论如何,科学家都希望进行预测以创建模型并测试数据。
......@@ -123,15 +125,15 @@ array([[2, 3],
最后一个子集是用于测试的子集。
一些库最常用于培训和测试。
一些库最常用于训练和测试。
* **Pandas:**用于将数据文件作为 Pandas 数据帧加载并进行分析。
* **Sklearn:**用于导入数据集模块,加载样本数据集并运行线性回归。
* **Matplotlib:**使用 pyplot 绘制数据图。
* **Pandas**用于将数据文件作为 Pandas 数据帧加载并进行分析。
* **Sklearn**用于导入数据集模块,加载样本数据集并运行线性回归。
* **Matplotlib**:使用`pyplot`绘制数据图。
最后,如果需要拆分数据库,请首先避免过拟合或欠拟合。
进行培训和测试阶段(并根据需要进行交叉验证)。
进行训练和测试阶段(并根据需要进行交叉验证)。
使用更适合所需工作的库。
......
......@@ -12,7 +12,7 @@
唯一的障碍是需要一种不同的算法来启动有关要处理数据的不同假设,这有时可能需要进行不同的转换。
在准备数据以使用 sci-kit-learn 进行学习时,有四个经过验证的步骤。 它们包括:
在准备数据以使用 scikit-learn 进行学习时,有四个经过验证的步骤。 它们包括:
1. 重新缩放数据
2. 数据标准化
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册