130.md 2.0 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4
# 机器学习回归

> 原文: [https://pythonbasics.org/machine-learning-regression/](https://pythonbasics.org/machine-learning-regression/)

W
wizardforcel 已提交
5
线性回归算法可预测连续值(例如价格,温度)。这是针对初学者的机器学习算法系列中的另一篇文章。这是一种有监督的学习算法,您需要收集训练数据才能使其工作。
W
init  
wizardforcel 已提交
6

W
wizardforcel 已提交
7

W
init  
wizardforcel 已提交
8 9 10 11 12

## 线性回归

### 简介

W
wizardforcel 已提交
13
分类输出只能是离散值。 可以有`[0]``[1]``[2]`等。如果要输出价格或其他连续值怎么办?
W
init  
wizardforcel 已提交
14 15 16

然后,您使用回归算法。

W
wizardforcel 已提交
17
假设您要根据特征预测房价。 收集数据是
W
wizardforcel 已提交
18
的第一步。 特征可能是房间数量,以 m^2 为单位的面积,邻里质量等。
W
init  
wizardforcel 已提交
19 20 21

![linear regression training data](img/79a66fc75d419b006ca2189da2f75d08.jpg)

W
wizardforcel 已提交
22
### 示例
W
init  
wizardforcel 已提交
23

W
wizardforcel 已提交
24
写下特征:`#area_m2`。对于我们的示例代码,如下所示。
W
init  
wizardforcel 已提交
25

W
wizardforcel 已提交
26
```py
W
init  
wizardforcel 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
from sklearn.linear_model import LinearRegression

X = [[4], [8], [12], [16], [18]]
y = [[40000], [80000], [100000], [120000], [150000]]

model = LinearRegression()
model.fit(X,y)

# predict
rooms = 11
prediction = model.predict([[rooms]])
print('Price prediction: $%.2f' % prediction)

```

W
wizardforcel 已提交
42
然后,您可以根据该数据创建绘图(如果需要)。您看到面积与价格之间存在相关性。
W
init  
wizardforcel 已提交
43

W
wizardforcel 已提交
44
这是线性关系。您可以使用线性回归算法预测价格。
W
init  
wizardforcel 已提交
45 46 47

### 解释

W
wizardforcel 已提交
48
首先,从学习的过程中导入线性回归算法,然后定义训练数据`X``Y`,其中`x`是面积,`y`是价格。
W
init  
wizardforcel 已提交
49

W
wizardforcel 已提交
50
```py
W
init  
wizardforcel 已提交
51 52 53 54 55 56 57
model = LinearRegression()
model.fit(X,y)

```

线性回归算法由于存在线性关系,因此我们使用训练数据来训练算法。

W
wizardforcel 已提交
58
现在已经对算法进行了训练,您可以使用该区域进行预测了。一个新示例,可以为您预测价格。
W
init  
wizardforcel 已提交
59

W
wizardforcel 已提交
60
```py
W
init  
wizardforcel 已提交
61 62 63 64 65 66
rooms = 11
prediction = model.predict([[rooms]])
print('Price prediction: $%.2f' % prediction)

```

W
wizardforcel 已提交
67
仅当数据集中存在线性关系时,算法`LinearRegression`才有效。如果没有,则需要多项式算法。
W
init  
wizardforcel 已提交
68 69 70 71

绘图以确认存在线性关系。

[下载示例和练习](https://gum.co/MnRYU)