initial commit
commit
be81d26e93
@ -0,0 +1,475 @@
|
||||
```python
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
df = pd.read_csv("iris_basic.csv")
|
||||
print(df.head())
|
||||
```
|
||||
|
||||
sl sw pl pw target tNames
|
||||
0 5.1 3.5 1.4 0.2 0 setosa
|
||||
1 4.9 3.0 1.4 0.2 0 setosa
|
||||
2 4.7 3.2 1.3 0.2 0 setosa
|
||||
3 4.6 3.1 1.5 0.2 0 setosa
|
||||
4 5.0 3.6 1.4 0.2 0 setosa
|
||||
|
||||
|
||||
|
||||
```python
|
||||
x = df["pw"].to_numpy().reshape(-1, 1) # (150,1)
|
||||
x
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
array([[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.4],
|
||||
[0.3],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.1],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.1],
|
||||
[0.1],
|
||||
[0.2],
|
||||
[0.4],
|
||||
[0.4],
|
||||
[0.3],
|
||||
[0.3],
|
||||
[0.3],
|
||||
[0.2],
|
||||
[0.4],
|
||||
[0.2],
|
||||
[0.5],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.4],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.4],
|
||||
[0.1],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.1],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.3],
|
||||
[0.3],
|
||||
[0.2],
|
||||
[0.6],
|
||||
[0.4],
|
||||
[0.3],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[0.2],
|
||||
[1.4],
|
||||
[1.5],
|
||||
[1.5],
|
||||
[1.3],
|
||||
[1.5],
|
||||
[1.3],
|
||||
[1.6],
|
||||
[1. ],
|
||||
[1.3],
|
||||
[1.4],
|
||||
[1. ],
|
||||
[1.5],
|
||||
[1. ],
|
||||
[1.4],
|
||||
[1.3],
|
||||
[1.4],
|
||||
[1.5],
|
||||
[1. ],
|
||||
[1.5],
|
||||
[1.1],
|
||||
[1.8],
|
||||
[1.3],
|
||||
[1.5],
|
||||
[1.2],
|
||||
[1.3],
|
||||
[1.4],
|
||||
[1.4],
|
||||
[1.7],
|
||||
[1.5],
|
||||
[1. ],
|
||||
[1.1],
|
||||
[1. ],
|
||||
[1.2],
|
||||
[1.6],
|
||||
[1.5],
|
||||
[1.6],
|
||||
[1.5],
|
||||
[1.3],
|
||||
[1.3],
|
||||
[1.3],
|
||||
[1.2],
|
||||
[1.4],
|
||||
[1.2],
|
||||
[1. ],
|
||||
[1.3],
|
||||
[1.2],
|
||||
[1.3],
|
||||
[1.3],
|
||||
[1.1],
|
||||
[1.3],
|
||||
[2.5],
|
||||
[1.9],
|
||||
[2.1],
|
||||
[1.8],
|
||||
[2.2],
|
||||
[2.1],
|
||||
[1.7],
|
||||
[1.8],
|
||||
[1.8],
|
||||
[2.5],
|
||||
[2. ],
|
||||
[1.9],
|
||||
[2.1],
|
||||
[2. ],
|
||||
[2.4],
|
||||
[2.3],
|
||||
[1.8],
|
||||
[2.2],
|
||||
[2.3],
|
||||
[1.5],
|
||||
[2.3],
|
||||
[2. ],
|
||||
[2. ],
|
||||
[1.8],
|
||||
[2.1],
|
||||
[1.8],
|
||||
[1.8],
|
||||
[1.8],
|
||||
[2.1],
|
||||
[1.6],
|
||||
[1.9],
|
||||
[2. ],
|
||||
[2.2],
|
||||
[1.5],
|
||||
[1.4],
|
||||
[2.3],
|
||||
[2.4],
|
||||
[1.8],
|
||||
[1.8],
|
||||
[2.1],
|
||||
[2.4],
|
||||
[2.3],
|
||||
[1.9],
|
||||
[2.3],
|
||||
[2.5],
|
||||
[2.3],
|
||||
[1.9],
|
||||
[2. ],
|
||||
[2.3],
|
||||
[1.8]])
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
y = df["target"].to_numpy().reshape(-1, 1) # (150,1)
|
||||
y = (y == 0).astype(float)
|
||||
y
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
array([[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[1.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.],
|
||||
[0.]])
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
def sigmoid(z):
|
||||
z = np.clip(z, -500, 500)
|
||||
sig = 1.0 / (1.0 + np.exp(-z))
|
||||
return sig
|
||||
```
|
||||
|
||||
|
||||
```python
|
||||
def log_loss(y, p, eps=1e-12):
|
||||
p = np.clip(p, eps, 1 - eps)
|
||||
return -np.mean(y*np.log(p) + (1-y)*np.log(1-p))
|
||||
```
|
||||
|
||||
|
||||
```python
|
||||
lr=0.1
|
||||
epochs=2000
|
||||
l2=0.0,
|
||||
X = np.column_stack([x, np.ones_like(x)])
|
||||
m = X.shape[0]
|
||||
theta = np.zeros((2,1))
|
||||
theta
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
array([[0.],
|
||||
[0.]])
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
X.T
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
array([[0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1,
|
||||
0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2,
|
||||
0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2,
|
||||
0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2, 1.4, 1.5,
|
||||
1.5, 1.3, 1.5, 1.3, 1.6, 1. , 1.3, 1.4, 1. , 1.5, 1. , 1.4, 1.3,
|
||||
1.4, 1.5, 1. , 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7,
|
||||
1.5, 1. , 1.1, 1. , 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2,
|
||||
1.4, 1.2, 1. , 1.3, 1.2, 1.3, 1.3, 1.1, 1.3, 2.5, 1.9, 2.1, 1.8,
|
||||
2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2. , 1.9, 2.1, 2. , 2.4, 2.3, 1.8,
|
||||
2.2, 2.3, 1.5, 2.3, 2. , 2. , 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6,
|
||||
1.9, 2. , 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9,
|
||||
2.3, 2.5, 2.3, 1.9, 2. , 2.3, 1.8],
|
||||
[1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. ,
|
||||
1. , 1. , 1. , 1. , 1. , 1. , 1. ]])
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
for i in range(epochs):
|
||||
z = X @ theta # (m,1)
|
||||
h = sigmoid(z) # (m,1)
|
||||
grad = (X.T @ (h - y)) / m # (2,1) <-- from your formula
|
||||
theta -= lr * grad
|
||||
|
||||
#if (i % 0 == 0 or t == epochs-1):
|
||||
# print(f"{i:4d} loss={log_loss(y, h):.6f} w={theta[0,0]:.6f} b={theta[1,0]:.6f}")
|
||||
|
||||
w, b = theta[0,0], theta[1,0]
|
||||
|
||||
```
|
||||
|
||||
|
||||
```python
|
||||
def predict_proba(x, w, b):
|
||||
x = np.asarray(x, float).reshape(-1)
|
||||
return sigmoid(w*x + b)
|
||||
|
||||
def predict(x, w, b, thresh=0.5):
|
||||
return (predict_proba(x, w, b) >= thresh).astype(int)
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
```python
|
||||
rng = np.random.default_rng(0)
|
||||
m = 120
|
||||
xNew = np.linspace(-0.5, 2.5, m)
|
||||
p = predict_proba(xNew, w, b)
|
||||
print(f"\nLearned: w={w:.3f}, b={b:.3f}, loss={log_loss(p.reshape(-1,1), p.reshape(-1,1)):.4f}")
|
||||
|
||||
```
|
||||
|
||||
|
||||
Learned: w=-5.989, b=4.279, loss=0.1812
|
||||
|
||||
|
||||
|
||||
```python
|
||||
yJitter = y +np.random.uniform(-0.2, 0.2, size=y.shape)
|
||||
plt.plot(x, yJitter, 'ok', alpha=0.1)
|
||||
plt.plot(xNew,p)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
[<matplotlib.lines.Line2D at 0x112e5cd70>]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
```
|
||||
@ -0,0 +1,151 @@
|
||||
sl,sw,pl,pw,target,tNames
|
||||
5.1,3.5,1.4,0.2,0,setosa
|
||||
4.9,3.0,1.4,0.2,0,setosa
|
||||
4.7,3.2,1.3,0.2,0,setosa
|
||||
4.6,3.1,1.5,0.2,0,setosa
|
||||
5.0,3.6,1.4,0.2,0,setosa
|
||||
5.4,3.9,1.7,0.4,0,setosa
|
||||
4.6,3.4,1.4,0.3,0,setosa
|
||||
5.0,3.4,1.5,0.2,0,setosa
|
||||
4.4,2.9,1.4,0.2,0,setosa
|
||||
4.9,3.1,1.5,0.1,0,setosa
|
||||
5.4,3.7,1.5,0.2,0,setosa
|
||||
4.8,3.4,1.6,0.2,0,setosa
|
||||
4.8,3.0,1.4,0.1,0,setosa
|
||||
4.3,3.0,1.1,0.1,0,setosa
|
||||
5.8,4.0,1.2,0.2,0,setosa
|
||||
5.7,4.4,1.5,0.4,0,setosa
|
||||
5.4,3.9,1.3,0.4,0,setosa
|
||||
5.1,3.5,1.4,0.3,0,setosa
|
||||
5.7,3.8,1.7,0.3,0,setosa
|
||||
5.1,3.8,1.5,0.3,0,setosa
|
||||
5.4,3.4,1.7,0.2,0,setosa
|
||||
5.1,3.7,1.5,0.4,0,setosa
|
||||
4.6,3.6,1.0,0.2,0,setosa
|
||||
5.1,3.3,1.7,0.5,0,setosa
|
||||
4.8,3.4,1.9,0.2,0,setosa
|
||||
5.0,3.0,1.6,0.2,0,setosa
|
||||
5.0,3.4,1.6,0.4,0,setosa
|
||||
5.2,3.5,1.5,0.2,0,setosa
|
||||
5.2,3.4,1.4,0.2,0,setosa
|
||||
4.7,3.2,1.6,0.2,0,setosa
|
||||
4.8,3.1,1.6,0.2,0,setosa
|
||||
5.4,3.4,1.5,0.4,0,setosa
|
||||
5.2,4.1,1.5,0.1,0,setosa
|
||||
5.5,4.2,1.4,0.2,0,setosa
|
||||
4.9,3.1,1.5,0.2,0,setosa
|
||||
5.0,3.2,1.2,0.2,0,setosa
|
||||
5.5,3.5,1.3,0.2,0,setosa
|
||||
4.9,3.6,1.4,0.1,0,setosa
|
||||
4.4,3.0,1.3,0.2,0,setosa
|
||||
5.1,3.4,1.5,0.2,0,setosa
|
||||
5.0,3.5,1.3,0.3,0,setosa
|
||||
4.5,2.3,1.3,0.3,0,setosa
|
||||
4.4,3.2,1.3,0.2,0,setosa
|
||||
5.0,3.5,1.6,0.6,0,setosa
|
||||
5.1,3.8,1.9,0.4,0,setosa
|
||||
4.8,3.0,1.4,0.3,0,setosa
|
||||
5.1,3.8,1.6,0.2,0,setosa
|
||||
4.6,3.2,1.4,0.2,0,setosa
|
||||
5.3,3.7,1.5,0.2,0,setosa
|
||||
5.0,3.3,1.4,0.2,0,setosa
|
||||
7.0,3.2,4.7,1.4,1,versicolor
|
||||
6.4,3.2,4.5,1.5,1,versicolor
|
||||
6.9,3.1,4.9,1.5,1,versicolor
|
||||
5.5,2.3,4.0,1.3,1,versicolor
|
||||
6.5,2.8,4.6,1.5,1,versicolor
|
||||
5.7,2.8,4.5,1.3,1,versicolor
|
||||
6.3,3.3,4.7,1.6,1,versicolor
|
||||
4.9,2.4,3.3,1.0,1,versicolor
|
||||
6.6,2.9,4.6,1.3,1,versicolor
|
||||
5.2,2.7,3.9,1.4,1,versicolor
|
||||
5.0,2.0,3.5,1.0,1,versicolor
|
||||
5.9,3.0,4.2,1.5,1,versicolor
|
||||
6.0,2.2,4.0,1.0,1,versicolor
|
||||
6.1,2.9,4.7,1.4,1,versicolor
|
||||
5.6,2.9,3.6,1.3,1,versicolor
|
||||
6.7,3.1,4.4,1.4,1,versicolor
|
||||
5.6,3.0,4.5,1.5,1,versicolor
|
||||
5.8,2.7,4.1,1.0,1,versicolor
|
||||
6.2,2.2,4.5,1.5,1,versicolor
|
||||
5.6,2.5,3.9,1.1,1,versicolor
|
||||
5.9,3.2,4.8,1.8,1,versicolor
|
||||
6.1,2.8,4.0,1.3,1,versicolor
|
||||
6.3,2.5,4.9,1.5,1,versicolor
|
||||
6.1,2.8,4.7,1.2,1,versicolor
|
||||
6.4,2.9,4.3,1.3,1,versicolor
|
||||
6.6,3.0,4.4,1.4,1,versicolor
|
||||
6.8,2.8,4.8,1.4,1,versicolor
|
||||
6.7,3.0,5.0,1.7,1,versicolor
|
||||
6.0,2.9,4.5,1.5,1,versicolor
|
||||
5.7,2.6,3.5,1.0,1,versicolor
|
||||
5.5,2.4,3.8,1.1,1,versicolor
|
||||
5.5,2.4,3.7,1.0,1,versicolor
|
||||
5.8,2.7,3.9,1.2,1,versicolor
|
||||
6.0,2.7,5.1,1.6,1,versicolor
|
||||
5.4,3.0,4.5,1.5,1,versicolor
|
||||
6.0,3.4,4.5,1.6,1,versicolor
|
||||
6.7,3.1,4.7,1.5,1,versicolor
|
||||
6.3,2.3,4.4,1.3,1,versicolor
|
||||
5.6,3.0,4.1,1.3,1,versicolor
|
||||
5.5,2.5,4.0,1.3,1,versicolor
|
||||
5.5,2.6,4.4,1.2,1,versicolor
|
||||
6.1,3.0,4.6,1.4,1,versicolor
|
||||
5.8,2.6,4.0,1.2,1,versicolor
|
||||
5.0,2.3,3.3,1.0,1,versicolor
|
||||
5.6,2.7,4.2,1.3,1,versicolor
|
||||
5.7,3.0,4.2,1.2,1,versicolor
|
||||
5.7,2.9,4.2,1.3,1,versicolor
|
||||
6.2,2.9,4.3,1.3,1,versicolor
|
||||
5.1,2.5,3.0,1.1,1,versicolor
|
||||
5.7,2.8,4.1,1.3,1,versicolor
|
||||
6.3,3.3,6.0,2.5,2,virginica
|
||||
5.8,2.7,5.1,1.9,2,virginica
|
||||
7.1,3.0,5.9,2.1,2,virginica
|
||||
6.3,2.9,5.6,1.8,2,virginica
|
||||
6.5,3.0,5.8,2.2,2,virginica
|
||||
7.6,3.0,6.6,2.1,2,virginica
|
||||
4.9,2.5,4.5,1.7,2,virginica
|
||||
7.3,2.9,6.3,1.8,2,virginica
|
||||
6.7,2.5,5.8,1.8,2,virginica
|
||||
7.2,3.6,6.1,2.5,2,virginica
|
||||
6.5,3.2,5.1,2.0,2,virginica
|
||||
6.4,2.7,5.3,1.9,2,virginica
|
||||
6.8,3.0,5.5,2.1,2,virginica
|
||||
5.7,2.5,5.0,2.0,2,virginica
|
||||
5.8,2.8,5.1,2.4,2,virginica
|
||||
6.4,3.2,5.3,2.3,2,virginica
|
||||
6.5,3.0,5.5,1.8,2,virginica
|
||||
7.7,3.8,6.7,2.2,2,virginica
|
||||
7.7,2.6,6.9,2.3,2,virginica
|
||||
6.0,2.2,5.0,1.5,2,virginica
|
||||
6.9,3.2,5.7,2.3,2,virginica
|
||||
5.6,2.8,4.9,2.0,2,virginica
|
||||
7.7,2.8,6.7,2.0,2,virginica
|
||||
6.3,2.7,4.9,1.8,2,virginica
|
||||
6.7,3.3,5.7,2.1,2,virginica
|
||||
7.2,3.2,6.0,1.8,2,virginica
|
||||
6.2,2.8,4.8,1.8,2,virginica
|
||||
6.1,3.0,4.9,1.8,2,virginica
|
||||
6.4,2.8,5.6,2.1,2,virginica
|
||||
7.2,3.0,5.8,1.6,2,virginica
|
||||
7.4,2.8,6.1,1.9,2,virginica
|
||||
7.9,3.8,6.4,2.0,2,virginica
|
||||
6.4,2.8,5.6,2.2,2,virginica
|
||||
6.3,2.8,5.1,1.5,2,virginica
|
||||
6.1,2.6,5.6,1.4,2,virginica
|
||||
7.7,3.0,6.1,2.3,2,virginica
|
||||
6.3,3.4,5.6,2.4,2,virginica
|
||||
6.4,3.1,5.5,1.8,2,virginica
|
||||
6.0,3.0,4.8,1.8,2,virginica
|
||||
6.9,3.1,5.4,2.1,2,virginica
|
||||
6.7,3.1,5.6,2.4,2,virginica
|
||||
6.9,3.1,5.1,2.3,2,virginica
|
||||
5.8,2.7,5.1,1.9,2,virginica
|
||||
6.8,3.2,5.9,2.3,2,virginica
|
||||
6.7,3.3,5.7,2.5,2,virginica
|
||||
6.7,3.0,5.2,2.3,2,virginica
|
||||
6.3,2.5,5.0,1.9,2,virginica
|
||||
6.5,3.0,5.2,2.0,2,virginica
|
||||
6.2,3.4,5.4,2.3,2,virginica
|
||||
5.9,3.0,5.1,1.8,2,virginica
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
Loading…
Reference in New Issue