机器学习之回归实践
程序员文章站
2022-05-09 13:09:49
...
三个数据集:
8.Advertising.csv
,TV,Radio,Newspaper,Sales
1,230.1,37.8,69.2,22.1
2,44.5,39.3,45.1,10.4
3,17.2,45.9,69.3,9.3
4,151.5,41.3,58.5,18.5
5,180.8,10.8,58.4,12.9
6,8.7,48.9,75,7.2
7,57.5,32.8,23.5,11.8
8,120.2,19.6,11.6,13.2
9,8.6,2.1,1,4.8
10,199.8,2.6,21.2,10.6
11,66.1,5.8,24.2,8.6
12,214.7,24,4,17.4
13,23.8,35.1,65.9,9.2
14,97.5,7.6,7.2,9.7
15,204.1,32.9,46,19
16,195.4,47.7,52.9,22.4
17,67.8,36.6,114,12.5
18,281.4,39.6,55.8,24.4
19,69.2,20.5,18.3,11.3
20,147.3,23.9,19.1,14.6
21,218.4,27.7,53.4,18
22,237.4,5.1,23.5,12.5
23,13.2,15.9,49.6,5.6
24,228.3,16.9,26.2,15.5
25,62.3,12.6,18.3,9.7
26,262.9,3.5,19.5,12
27,142.9,29.3,12.6,15
28,240.1,16.7,22.9,15.9
29,248.8,27.1,22.9,18.9
30,70.6,16,40.8,10.5
31,292.9,28.3,43.2,21.4
32,112.9,17.4,38.6,11.9
33,97.2,1.5,30,9.6
34,265.6,20,0.3,17.4
35,95.7,1.4,7.4,9.5
36,290.7,4.1,8.5,12.8
37,266.9,43.8,5,25.4
38,74.7,49.4,45.7,14.7
39,43.1,26.7,35.1,10.1
40,228,37.7,32,21.5
41,202.5,22.3,31.6,16.6
42,177,33.4,38.7,17.1
43,293.6,27.7,1.8,20.7
44,206.9,8.4,26.4,12.9
45,25.1,25.7,43.3,8.5
46,175.1,22.5,31.5,14.9
47,89.7,9.9,35.7,10.6
48,239.9,41.5,18.5,23.2
49,227.2,15.8,49.9,14.8
50,66.9,11.7,36.8,9.7
51,199.8,3.1,34.6,11.4
52,100.4,9.6,3.6,10.7
53,216.4,41.7,39.6,22.6
54,182.6,46.2,58.7,21.2
55,262.7,28.8,15.9,20.2
56,198.9,49.4,60,23.7
57,7.3,28.1,41.4,5.5
58,136.2,19.2,16.6,13.2
59,210.8,49.6,37.7,23.8
60,210.7,29.5,9.3,18.4
61,53.5,2,21.4,8.1
62,261.3,42.7,54.7,24.2
63,239.3,15.5,27.3,15.7
64,102.7,29.6,8.4,14
65,131.1,42.8,28.9,18
66,69,9.3,0.9,9.3
67,31.5,24.6,2.2,9.5
68,139.3,14.5,10.2,13.4
69,237.4,27.5,11,18.9
70,216.8,43.9,27.2,22.3
71,199.1,30.6,38.7,18.3
72,109.8,14.3,31.7,12.4
73,26.8,33,19.3,8.8
74,129.4,5.7,31.3,11
75,213.4,24.6,13.1,17
76,16.9,43.7,89.4,8.7
77,27.5,1.6,20.7,6.9
78,120.5,28.5,14.2,14.2
79,5.4,29.9,9.4,5.3
80,116,7.7,23.1,11
81,76.4,26.7,22.3,11.8
82,239.8,4.1,36.9,12.3
83,75.3,20.3,32.5,11.3
84,68.4,44.5,35.6,13.6
85,213.5,43,33.8,21.7
86,193.2,18.4,65.7,15.2
87,76.3,27.5,16,12
88,110.7,40.6,63.2,16
89,88.3,25.5,73.4,12.9
90,109.8,47.8,51.4,16.7
91,134.3,4.9,9.3,11.2
92,28.6,1.5,33,7.3
93,217.7,33.5,59,19.4
94,250.9,36.5,72.3,22.2
95,107.4,14,10.9,11.5
96,163.3,31.6,52.9,16.9
97,197.6,3.5,5.9,11.7
98,184.9,21,22,15.5
99,289.7,42.3,51.2,25.4
100,135.2,41.7,45.9,17.2
101,222.4,4.3,49.8,11.7
102,296.4,36.3,100.9,23.8
103,280.2,10.1,21.4,14.8
104,187.9,17.2,17.9,14.7
105,238.2,34.3,5.3,20.7
106,137.9,46.4,59,19.2
107,25,11,29.7,7.2
108,90.4,0.3,23.2,8.7
109,13.1,0.4,25.6,5.3
110,255.4,26.9,5.5,19.8
111,225.8,8.2,56.5,13.4
112,241.7,38,23.2,21.8
113,175.7,15.4,2.4,14.1
114,209.6,20.6,10.7,15.9
115,78.2,46.8,34.5,14.6
116,75.1,35,52.7,12.6
117,139.2,14.3,25.6,12.2
118,76.4,0.8,14.8,9.4
119,125.7,36.9,79.2,15.9
120,19.4,16,22.3,6.6
121,141.3,26.8,46.2,15.5
122,18.8,21.7,50.4,7
123,224,2.4,15.6,11.6
124,123.1,34.6,12.4,15.2
125,229.5,32.3,74.2,19.7
126,87.2,11.8,25.9,10.6
127,7.8,38.9,50.6,6.6
128,80.2,0,9.2,8.8
129,220.3,49,3.2,24.7
130,59.6,12,43.1,9.7
131,0.7,39.6,8.7,1.6
132,265.2,2.9,43,12.7
133,8.4,27.2,2.1,5.7
134,219.8,33.5,45.1,19.6
135,36.9,38.6,65.6,10.8
136,48.3,47,8.5,11.6
137,25.6,39,9.3,9.5
138,273.7,28.9,59.7,20.8
139,43,25.9,20.5,9.6
140,184.9,43.9,1.7,20.7
141,73.4,17,12.9,10.9
142,193.7,35.4,75.6,19.2
143,220.5,33.2,37.9,20.1
144,104.6,5.7,34.4,10.4
145,96.2,14.8,38.9,11.4
146,140.3,1.9,9,10.3
147,240.1,7.3,8.7,13.2
148,243.2,49,44.3,25.4
149,38,40.3,11.9,10.9
150,44.7,25.8,20.6,10.1
151,280.7,13.9,37,16.1
152,121,8.4,48.7,11.6
153,197.6,23.3,14.2,16.6
154,171.3,39.7,37.7,19
155,187.8,21.1,9.5,15.6
156,4.1,11.6,5.7,3.2
157,93.9,43.5,50.5,15.3
158,149.8,1.3,24.3,10.1
159,11.7,36.9,45.2,7.3
160,131.7,18.4,34.6,12.9
161,172.5,18.1,30.7,14.4
162,85.7,35.8,49.3,13.3
163,188.4,18.1,25.6,14.9
164,163.5,36.8,7.4,18
165,117.2,14.7,5.4,11.9
166,234.5,3.4,84.8,11.9
167,17.9,37.6,21.6,8
168,206.8,5.2,19.4,12.2
169,215.4,23.6,57.6,17.1
170,284.3,10.6,6.4,15
171,50,11.6,18.4,8.4
172,164.5,20.9,47.4,14.5
173,19.6,20.1,17,7.6
174,168.4,7.1,12.8,11.7
175,222.4,3.4,13.1,11.5
176,276.9,48.9,41.8,27
177,248.4,30.2,20.3,20.2
178,170.2,7.8,35.2,11.7
179,276.7,2.3,23.7,11.8
180,165.6,10,17.6,12.6
181,156.6,2.6,8.3,10.5
182,218.5,5.4,27.4,12.2
183,56.2,5.7,29.7,8.7
184,287.6,43,71.8,26.2
185,253.8,21.3,30,17.6
186,205,45.1,19.6,22.6
187,139.5,2.1,26.6,10.3
188,191.1,28.7,18.2,17.3
189,286,13.9,3.7,15.9
190,18.7,12.1,23.4,6.7
191,39.5,41.1,5.8,10.8
192,75.5,10.8,6,9.9
193,17.2,4.1,31.6,5.9
194,166.8,42,3.6,19.6
195,149.7,35.6,6,17.3
196,38.2,3.7,13.8,7.6
197,94.2,4.9,8.1,9.7
198,177,9.3,6.4,12.8
199,283.6,42,66.2,25.5
200,232.1,8.6,8.7,13.4
8.iris.data
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.4,3.7,1.5,0.2,Iris-setosa
4.8,3.4,1.6,0.2,Iris-setosa
4.8,3.0,1.4,0.1,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.8,4.0,1.2,0.2,Iris-setosa
5.7,4.4,1.5,0.4,Iris-setosa
5.4,3.9,1.3,0.4,Iris-setosa
5.1,3.5,1.4,0.3,Iris-setosa
5.7,3.8,1.7,0.3,Iris-setosa
5.1,3.8,1.5,0.3,Iris-setosa
5.4,3.4,1.7,0.2,Iris-setosa
5.1,3.7,1.5,0.4,Iris-setosa
4.6,3.6,1.0,0.2,Iris-setosa
5.1,3.3,1.7,0.5,Iris-setosa
4.8,3.4,1.9,0.2,Iris-setosa
5.0,3.0,1.6,0.2,Iris-setosa
5.0,3.4,1.6,0.4,Iris-setosa
5.2,3.5,1.5,0.2,Iris-setosa
5.2,3.4,1.4,0.2,Iris-setosa
4.7,3.2,1.6,0.2,Iris-setosa
4.8,3.1,1.6,0.2,Iris-setosa
5.4,3.4,1.5,0.4,Iris-setosa
5.2,4.1,1.5,0.1,Iris-setosa
5.5,4.2,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.0,3.2,1.2,0.2,Iris-setosa
5.5,3.5,1.3,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
4.4,3.0,1.3,0.2,Iris-setosa
5.1,3.4,1.5,0.2,Iris-setosa
5.0,3.5,1.3,0.3,Iris-setosa
4.5,2.3,1.3,0.3,Iris-setosa
4.4,3.2,1.3,0.2,Iris-setosa
5.0,3.5,1.6,0.6,Iris-setosa
5.1,3.8,1.9,0.4,Iris-setosa
4.8,3.0,1.4,0.3,Iris-setosa
5.1,3.8,1.6,0.2,Iris-setosa
4.6,3.2,1.4,0.2,Iris-setosa
5.3,3.7,1.5,0.2,Iris-setosa
5.0,3.3,1.4,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.4,3.2,4.5,1.5,Iris-versicolor
6.9,3.1,4.9,1.5,Iris-versicolor
5.5,2.3,4.0,1.3,Iris-versicolor
6.5,2.8,4.6,1.5,Iris-versicolor
5.7,2.8,4.5,1.3,Iris-versicolor
6.3,3.3,4.7,1.6,Iris-versicolor
4.9,2.4,3.3,1.0,Iris-versicolor
6.6,2.9,4.6,1.3,Iris-versicolor
5.2,2.7,3.9,1.4,Iris-versicolor
5.0,2.0,3.5,1.0,Iris-versicolor
5.9,3.0,4.2,1.5,Iris-versicolor
6.0,2.2,4.0,1.0,Iris-versicolor
6.1,2.9,4.7,1.4,Iris-versicolor
5.6,2.9,3.6,1.3,Iris-versicolor
6.7,3.1,4.4,1.4,Iris-versicolor
5.6,3.0,4.5,1.5,Iris-versicolor
5.8,2.7,4.1,1.0,Iris-versicolor
6.2,2.2,4.5,1.5,Iris-versicolor
5.6,2.5,3.9,1.1,Iris-versicolor
5.9,3.2,4.8,1.8,Iris-versicolor
6.1,2.8,4.0,1.3,Iris-versicolor
6.3,2.5,4.9,1.5,Iris-versicolor
6.1,2.8,4.7,1.2,Iris-versicolor
6.4,2.9,4.3,1.3,Iris-versicolor
6.6,3.0,4.4,1.4,Iris-versicolor
6.8,2.8,4.8,1.4,Iris-versicolor
6.7,3.0,5.0,1.7,Iris-versicolor
6.0,2.9,4.5,1.5,Iris-versicolor
5.7,2.6,3.5,1.0,Iris-versicolor
5.5,2.4,3.8,1.1,Iris-versicolor
5.5,2.4,3.7,1.0,Iris-versicolor
5.8,2.7,3.9,1.2,Iris-versicolor
6.0,2.7,5.1,1.6,Iris-versicolor
5.4,3.0,4.5,1.5,Iris-versicolor
6.0,3.4,4.5,1.6,Iris-versicolor
6.7,3.1,4.7,1.5,Iris-versicolor
6.3,2.3,4.4,1.3,Iris-versicolor
5.6,3.0,4.1,1.3,Iris-versicolor
5.5,2.5,4.0,1.3,Iris-versicolor
5.5,2.6,4.4,1.2,Iris-versicolor
6.1,3.0,4.6,1.4,Iris-versicolor
5.8,2.6,4.0,1.2,Iris-versicolor
5.0,2.3,3.3,1.0,Iris-versicolor
5.6,2.7,4.2,1.3,Iris-versicolor
5.7,3.0,4.2,1.2,Iris-versicolor
5.7,2.9,4.2,1.3,Iris-versicolor
6.2,2.9,4.3,1.3,Iris-versicolor
5.1,2.5,3.0,1.1,Iris-versicolor
5.7,2.8,4.1,1.3,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
7.1,3.0,5.9,2.1,Iris-virginica
6.3,2.9,5.6,1.8,Iris-virginica
6.5,3.0,5.8,2.2,Iris-virginica
7.6,3.0,6.6,2.1,Iris-virginica
4.9,2.5,4.5,1.7,Iris-virginica
7.3,2.9,6.3,1.8,Iris-virginica
6.7,2.5,5.8,1.8,Iris-virginica
7.2,3.6,6.1,2.5,Iris-virginica
6.5,3.2,5.1,2.0,Iris-virginica
6.4,2.7,5.3,1.9,Iris-virginica
6.8,3.0,5.5,2.1,Iris-virginica
5.7,2.5,5.0,2.0,Iris-virginica
5.8,2.8,5.1,2.4,Iris-virginica
6.4,3.2,5.3,2.3,Iris-virginica
6.5,3.0,5.5,1.8,Iris-virginica
7.7,3.8,6.7,2.2,Iris-virginica
7.7,2.6,6.9,2.3,Iris-virginica
6.0,2.2,5.0,1.5,Iris-virginica
6.9,3.2,5.7,2.3,Iris-virginica
5.6,2.8,4.9,2.0,Iris-virginica
7.7,2.8,6.7,2.0,Iris-virginica
6.3,2.7,4.9,1.8,Iris-virginica
6.7,3.3,5.7,2.1,Iris-virginica
7.2,3.2,6.0,1.8,Iris-virginica
6.2,2.8,4.8,1.8,Iris-virginica
6.1,3.0,4.9,1.8,Iris-virginica
6.4,2.8,5.6,2.1,Iris-virginica
7.2,3.0,5.8,1.6,Iris-virginica
7.4,2.8,6.1,1.9,Iris-virginica
7.9,3.8,6.4,2.0,Iris-virginica
6.4,2.8,5.6,2.2,Iris-virginica
6.3,2.8,5.1,1.5,Iris-virginica
6.1,2.6,5.6,1.4,Iris-virginica
7.7,3.0,6.1,2.3,Iris-virginica
6.3,3.4,5.6,2.4,Iris-virginica
6.4,3.1,5.5,1.8,Iris-virginica
6.0,3.0,4.8,1.8,Iris-virginica
6.9,3.1,5.4,2.1,Iris-virginica
6.7,3.1,5.6,2.4,Iris-virginica
6.9,3.1,5.1,2.3,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
6.8,3.2,5.9,2.3,Iris-virginica
6.7,3.3,5.7,2.5,Iris-virginica
6.7,3.0,5.2,2.3,Iris-virginica
6.3,2.5,5.0,1.9,Iris-virginica
6.5,3.0,5.2,2.0,Iris-virginica
6.2,3.4,5.4,2.3,Iris-virginica
5.9,3.0,5.1,1.8,Iris-virginica
8.iris.names
1. Title: Iris Plants Database
Updated Sept 21 by C.Blake - Added discrepency information
2. Sources:
(a) Creator: R.A. Fisher
(b) Donor: Michael Marshall (MARSHALL%aaa@qq.com)
(c) Date: July, 1988
3. Past Usage:
- Publications: too many to mention!!! Here are a few.
1. Fisher,R.A. "The use of multiple measurements in taxonomic problems"
Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions
to Mathematical Statistics" (John Wiley, NY, 1950).
2. Duda,R.O., & Hart,P.E. (1973) Pattern Classification and Scene Analysis.
(Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.
3. Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System
Structure and Classification Rule for Recognition in Partially Exposed
Environments". IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. PAMI-2, No. 1, 67-71.
-- Results:
-- very low misclassification rates (0% for the setosa class)
4. Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule". IEEE
Transactions on Information Theory, May 1972, 431-433.
-- Results:
-- very low misclassification rates again
5. See also: 1988 MLC Proceedings, 54-64. Cheeseman et al's AUTOCLASS II
conceptual clustering system finds 3 classes in the data.
4. Relevant Information:
--- This is perhaps the best known database to be found in the pattern
recognition literature. Fisher's paper is a classic in the field
and is referenced frequently to this day. (See Duda & Hart, for
example.) The data set contains 3 classes of 50 instances each,
where each class refers to a type of iris plant. One class is
linearly separable from the other 2; the latter are NOT linearly
separable from each other.
--- Predicted attribute: class of iris plant.
--- This is an exceedingly simple domain.
--- This data differs from the data presented in Fishers article
(identified by Steve Chadwick, aaa@qq.com )
The 35th sample should be: 4.9,3.1,1.5,0.2,"Iris-setosa"
where the error is in the fourth feature.
The 38th sample: 4.9,3.6,1.4,0.1,"Iris-setosa"
where the errors are in the second and third features.
5. Number of Instances: 150 (50 in each of three classes)
6. Number of Attributes: 4 numeric, predictive attributes and the class
7. Attribute Information:
1. sepal length in cm
2. sepal width in cm
3. petal length in cm
4. petal width in cm
5. class:
-- Iris Setosa
-- Iris Versicolour
-- Iris Virginica
8. Missing Attribute Values: None
Summary Statistics:
Min Max Mean SD Class Correlation
sepal length: 4.3 7.9 5.84 0.83 0.7826
sepal width: 2.0 4.4 3.05 0.43 -0.4194
petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)
petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)
9. Class Distribution: 33.3% for each of 3 classes.
8.1.Advertising.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import csv
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
if __name__ == "__main__":
path = '8.Advertising.csv'
# # 手写读取数据 - 请自行分析,在8.2.Iris代码中给出类似的例子
# f = file(path)
# x = []
# y = []
# for i, d in enumerate(f):
# if i == 0:
# continue
# d = d.strip()
# if not d:
# continue
# d = map(float, d.split(','))
# x.append(d[1:-1])
# y.append(d[-1])
# print x
# print y
# x = np.array(x)
# y = np.array(y)
# # Python自带库
# f = file(path, 'rb')
# print f
# d = csv.reader(f)
# for line in d:
# print line
# f.close()
# # numpy读入
# p = np.loadtxt(path, delimiter=',', skiprows=1)
# print p
# pandas读入
data = pd.read_csv(path) # TV、Radio、Newspaper、Sales
x = data[['TV', 'Radio', 'Newspaper']]
# x = data[['TV', 'Radio']]
y = data['Sales']
print(x)
print(y)
# # 绘制1
plt.plot(data['TV'], y, 'ro', label='TV')
plt.plot(data['Radio'], y, 'g^', label='Radio')
plt.plot(data['Newspaper'], y, 'mv', label='Newspaer')
plt.legend(loc='lower right')
plt.grid()
plt.show()
# #
# # 绘制2
# plt.figure(figsize=(9,12))
# plt.subplot(311)
# plt.plot(data['TV'], y, 'ro')
# plt.title('TV')
# plt.grid()
# plt.subplot(312)
# plt.plot(data['Radio'], y, 'g^')
# plt.title('Radio')
# plt.grid()
# plt.subplot(313)
# plt.plot(data['Newspaper'], y, 'b*')
# plt.title('Newspaper')
# plt.grid()
# plt.tight_layout()
# plt.show()
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1)
# print x_train, y_train
linreg = LinearRegression()
model = linreg.fit(x_train, y_train)
print(model)
print(linreg.coef_)
print(linreg.intercept_)
y_hat = linreg.predict(np.array(x_test))
mse = np.average((y_hat - np.array(y_test)) ** 2) # Mean Squared Error
rmse = np.sqrt(mse) # Root Mean Squared Error
print(mse, rmse)
t = np.arange(len(x_test))
plt.plot(t, y_test, 'r-', linewidth=2, label='Test')
plt.plot(t, y_hat, 'g-', linewidth=2, label='Predict')
plt.legend(loc='upper right')
plt.grid()
plt.show()
结果:
F:\pythonspace\venv\Scripts\python.exe F:/pythonspace/8.1.Advertising.py
TV Radio Newspaper
0 230.1 37.8 69.2
1 44.5 39.3 45.1
2 17.2 45.9 69.3
3 151.5 41.3 58.5
4 180.8 10.8 58.4
5 8.7 48.9 75.0
6 57.5 32.8 23.5
7 120.2 19.6 11.6
8 8.6 2.1 1.0
9 199.8 2.6 21.2
10 66.1 5.8 24.2
11 214.7 24.0 4.0
12 23.8 35.1 65.9
13 97.5 7.6 7.2
14 204.1 32.9 46.0
15 195.4 47.7 52.9
16 67.8 36.6 114.0
17 281.4 39.6 55.8
18 69.2 20.5 18.3
19 147.3 23.9 19.1
20 218.4 27.7 53.4
21 237.4 5.1 23.5
22 13.2 15.9 49.6
23 228.3 16.9 26.2
24 62.3 12.6 18.3
25 262.9 3.5 19.5
26 142.9 29.3 12.6
27 240.1 16.7 22.9
28 248.8 27.1 22.9
29 70.6 16.0 40.8
.. ... ... ...
170 50.0 11.6 18.4
171 164.5 20.9 47.4
172 19.6 20.1 17.0
173 168.4 7.1 12.8
174 222.4 3.4 13.1
175 276.9 48.9 41.8
176 248.4 30.2 20.3
177 170.2 7.8 35.2
178 276.7 2.3 23.7
179 165.6 10.0 17.6
180 156.6 2.6 8.3
181 218.5 5.4 27.4
182 56.2 5.7 29.7
183 287.6 43.0 71.8
184 253.8 21.3 30.0
185 205.0 45.1 19.6
186 139.5 2.1 26.6
187 191.1 28.7 18.2
188 286.0 13.9 3.7
189 18.7 12.1 23.4
190 39.5 41.1 5.8
191 75.5 10.8 6.0
192 17.2 4.1 31.6
193 166.8 42.0 3.6
194 149.7 35.6 6.0
195 38.2 3.7 13.8
196 94.2 4.9 8.1
197 177.0 9.3 6.4
198 283.6 42.0 66.2
199 232.1 8.6 8.7
[200 rows x 3 columns]
0 22.1
1 10.4
2 9.3
3 18.5
4 12.9
5 7.2
6 11.8
7 13.2
8 4.8
9 10.6
10 8.6
11 17.4
12 9.2
13 9.7
14 19.0
15 22.4
16 12.5
17 24.4
18 11.3
19 14.6
20 18.0
21 12.5
22 5.6
23 15.5
24 9.7
25 12.0
26 15.0
27 15.9
28 18.9
29 10.5
...
170 8.4
171 14.5
172 7.6
173 11.7
174 11.5
175 27.0
176 20.2
177 11.7
178 11.8
179 12.6
180 10.5
181 12.2
182 8.7
183 26.2
184 17.6
185 22.6
186 10.3
187 17.3
188 15.9
189 6.7
190 10.8
191 9.9
192 5.9
193 19.6
194 17.3
195 7.6
196 9.7
197 12.8
198 25.5
199 13.4
Name: Sales, Length: 200, dtype: float64
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
[0.04656457 0.17915812 0.00345046]
2.8769666223179353
1.9730456202283364 1.4046514230328948
Process finished with exit code 0
8.2.LinearRegression_CV.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Lasso, Ridge
from sklearn.model_selection import GridSearchCV
if __name__ == "__main__":
# pandas读入
data = pd.read_csv('8.Advertising.csv') # TV、Radio、Newspaper、Sales
x = data[['TV', 'Radio', 'Newspaper']]
# x = data[['TV', 'Radio']]
y = data['Sales']
print(x)
print(y)
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1)
# print x_train, y_train
model = Lasso()
# model = Ridge()
alpha_can = np.logspace(-3, 2, 10)
lasso_model = GridSearchCV(model, param_grid={'alpha': alpha_can}, cv=5)
lasso_model.fit(x, y)
print('验证参数:\n', lasso_model.best_params_)
y_hat = lasso_model.predict(np.array(x_test))
mse = np.average((y_hat - np.array(y_test)) ** 2) # Mean Squared Error
rmse = np.sqrt(mse) # Root Mean Squared Error
print(mse, rmse)
t = np.arange(len(x_test))
plt.plot(t, y_test, 'r-', linewidth=2, label='Test')
plt.plot(t, y_hat, 'g-', linewidth=2, label='Predict')
plt.legend(loc='upper right')
plt.grid()
plt.show()
结果:
F:\pythonspace\venv\Scripts\python.exe F:/pythonspace/8.2.LinearRegression_CV.py
TV Radio Newspaper
0 230.1 37.8 69.2
1 44.5 39.3 45.1
2 17.2 45.9 69.3
3 151.5 41.3 58.5
4 180.8 10.8 58.4
5 8.7 48.9 75.0
6 57.5 32.8 23.5
7 120.2 19.6 11.6
8 8.6 2.1 1.0
9 199.8 2.6 21.2
10 66.1 5.8 24.2
11 214.7 24.0 4.0
12 23.8 35.1 65.9
13 97.5 7.6 7.2
14 204.1 32.9 46.0
15 195.4 47.7 52.9
16 67.8 36.6 114.0
17 281.4 39.6 55.8
18 69.2 20.5 18.3
19 147.3 23.9 19.1
20 218.4 27.7 53.4
21 237.4 5.1 23.5
22 13.2 15.9 49.6
23 228.3 16.9 26.2
24 62.3 12.6 18.3
25 262.9 3.5 19.5
26 142.9 29.3 12.6
27 240.1 16.7 22.9
28 248.8 27.1 22.9
29 70.6 16.0 40.8
.. ... ... ...
170 50.0 11.6 18.4
171 164.5 20.9 47.4
172 19.6 20.1 17.0
173 168.4 7.1 12.8
174 222.4 3.4 13.1
175 276.9 48.9 41.8
176 248.4 30.2 20.3
177 170.2 7.8 35.2
178 276.7 2.3 23.7
179 165.6 10.0 17.6
180 156.6 2.6 8.3
181 218.5 5.4 27.4
182 56.2 5.7 29.7
183 287.6 43.0 71.8
184 253.8 21.3 30.0
185 205.0 45.1 19.6
186 139.5 2.1 26.6
187 191.1 28.7 18.2
188 286.0 13.9 3.7
189 18.7 12.1 23.4
190 39.5 41.1 5.8
191 75.5 10.8 6.0
192 17.2 4.1 31.6
193 166.8 42.0 3.6
194 149.7 35.6 6.0
195 38.2 3.7 13.8
196 94.2 4.9 8.1
197 177.0 9.3 6.4
198 283.6 42.0 66.2
199 232.1 8.6 8.7
[200 rows x 3 columns]
0 22.1
1 10.4
2 9.3
3 18.5
4 12.9
5 7.2
6 11.8
7 13.2
8 4.8
9 10.6
10 8.6
11 17.4
12 9.2
13 9.7
14 19.0
15 22.4
16 12.5
17 24.4
18 11.3
19 14.6
20 18.0
21 12.5
22 5.6
23 15.5
24 9.7
25 12.0
26 15.0
27 15.9
28 18.9
29 10.5
...
170 8.4
171 14.5
172 7.6
173 11.7
174 11.5
175 27.0
176 20.2
177 11.7
178 11.8
179 12.6
180 10.5
181 12.2
182 8.7
183 26.2
184 17.6
185 22.6
186 10.3
187 17.3
188 15.9
189 6.7
190 10.8
191 9.9
192 5.9
193 19.6
194 17.3
195 7.6
196 9.7
197 12.8
198 25.5
199 13.4
Name: Sales, Length: 200, dtype: float64
验证参数:
{'alpha': 2.1544346900318843}
1.9152263138298533 1.383917018404591
Process finished with exit code 0
8.3.Iris_LR.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import preprocessing
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
def iris_type(s):
it = {b'Iris-setosa': 0,
b'Iris-versicolor': 1,
b'Iris-virginica': 2}
return it[s]
if __name__ == "__main__":
path = u'8.iris.data' # 数据文件路径
# # # 手写读取数据
# # f = file(path)
# # x = []
# # y = []
# # for d in f:
# # d = d.strip()
# # if d:
# # d = d.split(',')
# # y.append(d[-1])
# # x.append(map(float, d[:-1]))
# # print '原始数据X:\n', x
# # print '原始数据Y:\n', y
# # x = np.array(x)
# # print 'Numpy格式X:\n', x
# # y = np.array(y)
# # print 'Numpy格式Y - 1:\n', y
# # y[y == 'Iris-setosa'] = 0
# # y[y == 'Iris-versicolor'] = 1
# # y[y == 'Iris-virginica'] = 2
# # print 'Numpy格式Y - 2:\n', y
# # y = y.astype(dtype=np.int)
# # print 'Numpy格式Y - 3:\n', y
#
# # 使用sklearn的数据预处理
# df = pd.read_csv(path, header=0)
# x = df.values[:, :-1]
# y = df.values[:, -1]
# print 'x = \n', x
# print 'y = \n', y
# le = preprocessing.LabelEncoder()
# le.fit(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'])
# print le.classes_
# y = le.transform(y)
# print 'Last Version, y = \n', y
#
# # 路径,浮点型数据,逗号分隔,第4列使用函数iris_type单独处理
data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})
print(data)
# 将数据的0到3列组成x,第4列得到y
x, y = np.split(data, (4,), axis=1)
# 为了可视化,仅使用前两列特征
x = x[:, :2]
#
print(x)
print(y)
#
# x = StandardScaler().fit_transform(x)
# lr = LogisticRegression() # Logistic回归模型
# lr.fit(x, y.ravel()) # 根据数据[x,y],计算回归参数
#
# 等价形式
lr = Pipeline([('sc', StandardScaler()),
('clf', LogisticRegression()) ])
lr.fit(x, y.ravel())
# 画图
N, M = 500, 500 # 横纵各采样多少个值
x1_min, x1_max = x[:, 0].min(), x[:, 0].max() # 第0列的范围
x2_min, x2_max = x[:, 1].min(), x[:, 1].max() # 第1列的范围
t1 = np.linspace(x1_min, x1_max, N)
t2 = np.linspace(x2_min, x2_max, M)
x1, x2 = np.meshgrid(t1, t2) # 生成网格采样点
x_test = np.stack((x1.flat, x2.flat), axis=1) # 测试点
# 无意义,只是为了凑另外两个维度
# x3 = np.ones(x1.size) * np.average(x[:, 2])
# x4 = np.ones(x1.size) * np.average(x[:, 3])
# x_test = np.stack((x1.flat, x2.flat, x3, x4), axis=1) # 测试点
cm_light = mpl.colors.ListedColormap(['#77E0A0', '#FF8080', '#A0A0FF'])
cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
y_hat = lr.predict(x_test) # 预测值
y_hat = y_hat.reshape(x1.shape) # 使之与输入的形状相同
plt.pcolormesh(x1, x2, y_hat, cmap=cm_light) # 预测值的显示
plt.scatter(x[:, 0], x[:, 1], c=np.squeeze(y), edgecolors='k', s=50, cmap=cm_dark) # 样本的显示
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.xlim(x1_min, x1_max)
plt.ylim(x2_min, x2_max)
plt.grid()
plt.savefig('2.png')
plt.show()
# 训练集上的预测结果
y_hat = lr.predict(x)
y = y.reshape(-1)
result = y_hat == y
print(y_hat)
print(result)
acc = np.mean(result)
print('准确度: %.2f%%' % (100 * acc))
结果:
F:\pythonspace\venv\Scripts\python.exe F:/pythonspace/8.3.Iris_LR.py
[[5.1 3.5 1.4 0.2 0. ]
[4.9 3. 1.4 0.2 0. ]
[4.7 3.2 1.3 0.2 0. ]
[4.6 3.1 1.5 0.2 0. ]
[5. 3.6 1.4 0.2 0. ]
[5.4 3.9 1.7 0.4 0. ]
[4.6 3.4 1.4 0.3 0. ]
[5. 3.4 1.5 0.2 0. ]
[4.4 2.9 1.4 0.2 0. ]
[4.9 3.1 1.5 0.1 0. ]
[5.4 3.7 1.5 0.2 0. ]
[4.8 3.4 1.6 0.2 0. ]
[4.8 3. 1.4 0.1 0. ]
[4.3 3. 1.1 0.1 0. ]
[5.8 4. 1.2 0.2 0. ]
[5.7 4.4 1.5 0.4 0. ]
[5.4 3.9 1.3 0.4 0. ]
[5.1 3.5 1.4 0.3 0. ]
[5.7 3.8 1.7 0.3 0. ]
[5.1 3.8 1.5 0.3 0. ]
[5.4 3.4 1.7 0.2 0. ]
[5.1 3.7 1.5 0.4 0. ]
[4.6 3.6 1. 0.2 0. ]
[5.1 3.3 1.7 0.5 0. ]
[4.8 3.4 1.9 0.2 0. ]
[5. 3. 1.6 0.2 0. ]
[5. 3.4 1.6 0.4 0. ]
[5.2 3.5 1.5 0.2 0. ]
[5.2 3.4 1.4 0.2 0. ]
[4.7 3.2 1.6 0.2 0. ]
[4.8 3.1 1.6 0.2 0. ]
[5.4 3.4 1.5 0.4 0. ]
[5.2 4.1 1.5 0.1 0. ]
[5.5 4.2 1.4 0.2 0. ]
[4.9 3.1 1.5 0.1 0. ]
[5. 3.2 1.2 0.2 0. ]
[5.5 3.5 1.3 0.2 0. ]
[4.9 3.1 1.5 0.1 0. ]
[4.4 3. 1.3 0.2 0. ]
[5.1 3.4 1.5 0.2 0. ]
[5. 3.5 1.3 0.3 0. ]
[4.5 2.3 1.3 0.3 0. ]
[4.4 3.2 1.3 0.2 0. ]
[5. 3.5 1.6 0.6 0. ]
[5.1 3.8 1.9 0.4 0. ]
[4.8 3. 1.4 0.3 0. ]
[5.1 3.8 1.6 0.2 0. ]
[4.6 3.2 1.4 0.2 0. ]
[5.3 3.7 1.5 0.2 0. ]
[5. 3.3 1.4 0.2 0. ]
[7. 3.2 4.7 1.4 1. ]
[6.4 3.2 4.5 1.5 1. ]
[6.9 3.1 4.9 1.5 1. ]
[5.5 2.3 4. 1.3 1. ]
[6.5 2.8 4.6 1.5 1. ]
[5.7 2.8 4.5 1.3 1. ]
[6.3 3.3 4.7 1.6 1. ]
[4.9 2.4 3.3 1. 1. ]
[6.6 2.9 4.6 1.3 1. ]
[5.2 2.7 3.9 1.4 1. ]
[5. 2. 3.5 1. 1. ]
[5.9 3. 4.2 1.5 1. ]
[6. 2.2 4. 1. 1. ]
[6.1 2.9 4.7 1.4 1. ]
[5.6 2.9 3.6 1.3 1. ]
[6.7 3.1 4.4 1.4 1. ]
[5.6 3. 4.5 1.5 1. ]
[5.8 2.7 4.1 1. 1. ]
[6.2 2.2 4.5 1.5 1. ]
[5.6 2.5 3.9 1.1 1. ]
[5.9 3.2 4.8 1.8 1. ]
[6.1 2.8 4. 1.3 1. ]
[6.3 2.5 4.9 1.5 1. ]
[6.1 2.8 4.7 1.2 1. ]
[6.4 2.9 4.3 1.3 1. ]
[6.6 3. 4.4 1.4 1. ]
[6.8 2.8 4.8 1.4 1. ]
[6.7 3. 5. 1.7 1. ]
[6. 2.9 4.5 1.5 1. ]
[5.7 2.6 3.5 1. 1. ]
[5.5 2.4 3.8 1.1 1. ]
[5.5 2.4 3.7 1. 1. ]
[5.8 2.7 3.9 1.2 1. ]
[6. 2.7 5.1 1.6 1. ]
[5.4 3. 4.5 1.5 1. ]
[6. 3.4 4.5 1.6 1. ]
[6.7 3.1 4.7 1.5 1. ]
[6.3 2.3 4.4 1.3 1. ]
[5.6 3. 4.1 1.3 1. ]
[5.5 2.5 4. 1.3 1. ]
[5.5 2.6 4.4 1.2 1. ]
[6.1 3. 4.6 1.4 1. ]
[5.8 2.6 4. 1.2 1. ]
[5. 2.3 3.3 1. 1. ]
[5.6 2.7 4.2 1.3 1. ]
[5.7 3. 4.2 1.2 1. ]
[5.7 2.9 4.2 1.3 1. ]
[6.2 2.9 4.3 1.3 1. ]
[5.1 2.5 3. 1.1 1. ]
[5.7 2.8 4.1 1.3 1. ]
[6.3 3.3 6. 2.5 2. ]
[5.8 2.7 5.1 1.9 2. ]
[7.1 3. 5.9 2.1 2. ]
[6.3 2.9 5.6 1.8 2. ]
[6.5 3. 5.8 2.2 2. ]
[7.6 3. 6.6 2.1 2. ]
[4.9 2.5 4.5 1.7 2. ]
[7.3 2.9 6.3 1.8 2. ]
[6.7 2.5 5.8 1.8 2. ]
[7.2 3.6 6.1 2.5 2. ]
[6.5 3.2 5.1 2. 2. ]
[6.4 2.7 5.3 1.9 2. ]
[6.8 3. 5.5 2.1 2. ]
[5.7 2.5 5. 2. 2. ]
[5.8 2.8 5.1 2.4 2. ]
[6.4 3.2 5.3 2.3 2. ]
[6.5 3. 5.5 1.8 2. ]
[7.7 3.8 6.7 2.2 2. ]
[7.7 2.6 6.9 2.3 2. ]
[6. 2.2 5. 1.5 2. ]
[6.9 3.2 5.7 2.3 2. ]
[5.6 2.8 4.9 2. 2. ]
[7.7 2.8 6.7 2. 2. ]
[6.3 2.7 4.9 1.8 2. ]
[6.7 3.3 5.7 2.1 2. ]
[7.2 3.2 6. 1.8 2. ]
[6.2 2.8 4.8 1.8 2. ]
[6.1 3. 4.9 1.8 2. ]
[6.4 2.8 5.6 2.1 2. ]
[7.2 3. 5.8 1.6 2. ]
[7.4 2.8 6.1 1.9 2. ]
[7.9 3.8 6.4 2. 2. ]
[6.4 2.8 5.6 2.2 2. ]
[6.3 2.8 5.1 1.5 2. ]
[6.1 2.6 5.6 1.4 2. ]
[7.7 3. 6.1 2.3 2. ]
[6.3 3.4 5.6 2.4 2. ]
[6.4 3.1 5.5 1.8 2. ]
[6. 3. 4.8 1.8 2. ]
[6.9 3.1 5.4 2.1 2. ]
[6.7 3.1 5.6 2.4 2. ]
[6.9 3.1 5.1 2.3 2. ]
[5.8 2.7 5.1 1.9 2. ]
[6.8 3.2 5.9 2.3 2. ]
[6.7 3.3 5.7 2.5 2. ]
[6.7 3. 5.2 2.3 2. ]
[6.3 2.5 5. 1.9 2. ]
[6.5 3. 5.2 2. 2. ]
[6.2 3.4 5.4 2.3 2. ]
[5.9 3. 5.1 1.8 2. ]]
[[5.1 3.5]
[4.9 3. ]
[4.7 3.2]
[4.6 3.1]
[5. 3.6]
[5.4 3.9]
[4.6 3.4]
[5. 3.4]
[4.4 2.9]
[4.9 3.1]
[5.4 3.7]
[4.8 3.4]
[4.8 3. ]
[4.3 3. ]
[5.8 4. ]
[5.7 4.4]
[5.4 3.9]
[5.1 3.5]
[5.7 3.8]
[5.1 3.8]
[5.4 3.4]
[5.1 3.7]
[4.6 3.6]
[5.1 3.3]
[4.8 3.4]
[5. 3. ]
[5. 3.4]
[5.2 3.5]
[5.2 3.4]
[4.7 3.2]
[4.8 3.1]
[5.4 3.4]
[5.2 4.1]
[5.5 4.2]
[4.9 3.1]
[5. 3.2]
[5.5 3.5]
[4.9 3.1]
[4.4 3. ]
[5.1 3.4]
[5. 3.5]
[4.5 2.3]
[4.4 3.2]
[5. 3.5]
[5.1 3.8]
[4.8 3. ]
[5.1 3.8]
[4.6 3.2]
[5.3 3.7]
[5. 3.3]
[7. 3.2]
[6.4 3.2]
[6.9 3.1]
[5.5 2.3]
[6.5 2.8]
[5.7 2.8]
[6.3 3.3]
[4.9 2.4]
[6.6 2.9]
[5.2 2.7]
[5. 2. ]
[5.9 3. ]
[6. 2.2]
[6.1 2.9]
[5.6 2.9]
[6.7 3.1]
[5.6 3. ]
[5.8 2.7]
[6.2 2.2]
[5.6 2.5]
[5.9 3.2]
[6.1 2.8]
[6.3 2.5]
[6.1 2.8]
[6.4 2.9]
[6.6 3. ]
[6.8 2.8]
[6.7 3. ]
[6. 2.9]
[5.7 2.6]
[5.5 2.4]
[5.5 2.4]
[5.8 2.7]
[6. 2.7]
[5.4 3. ]
[6. 3.4]
[6.7 3.1]
[6.3 2.3]
[5.6 3. ]
[5.5 2.5]
[5.5 2.6]
[6.1 3. ]
[5.8 2.6]
[5. 2.3]
[5.6 2.7]
[5.7 3. ]
[5.7 2.9]
[6.2 2.9]
[5.1 2.5]
[5.7 2.8]
[6.3 3.3]
[5.8 2.7]
[7.1 3. ]
[6.3 2.9]
[6.5 3. ]
[7.6 3. ]
[4.9 2.5]
[7.3 2.9]
[6.7 2.5]
[7.2 3.6]
[6.5 3.2]
[6.4 2.7]
[6.8 3. ]
[5.7 2.5]
[5.8 2.8]
[6.4 3.2]
[6.5 3. ]
[7.7 3.8]
[7.7 2.6]
[6. 2.2]
[6.9 3.2]
[5.6 2.8]
[7.7 2.8]
[6.3 2.7]
[6.7 3.3]
[7.2 3.2]
[6.2 2.8]
[6.1 3. ]
[6.4 2.8]
[7.2 3. ]
[7.4 2.8]
[7.9 3.8]
[6.4 2.8]
[6.3 2.8]
[6.1 2.6]
[7.7 3. ]
[6.3 3.4]
[6.4 3.1]
[6. 3. ]
[6.9 3.1]
[6.7 3.1]
[6.9 3.1]
[5.8 2.7]
[6.8 3.2]
[6.7 3.3]
[6.7 3. ]
[6.3 2.5]
[6.5 3. ]
[6.2 3.4]
[5.9 3. ]]
[[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.]
[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.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]
[2.]]
[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. 1. 0. 0. 0. 0. 0. 0.
0. 0. 2. 2. 2. 1. 2. 1. 2. 1. 2. 1. 1. 1. 1. 2. 1. 2. 1. 1. 1. 1. 2. 1.
1. 1. 2. 2. 2. 2. 1. 1. 1. 1. 1. 1. 0. 0. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1.
1. 2. 1. 1. 2. 1. 2. 2. 2. 2. 1. 2. 2. 2. 2. 2. 2. 1. 1. 2. 2. 2. 2. 1.
2. 1. 2. 1. 2. 2. 1. 2. 2. 2. 2. 2. 2. 2. 1. 2. 2. 2. 2. 2. 2. 2. 1. 2.
2. 2. 1. 2. 2. 1.]
[ True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True False True True True True True True
True True False False False True False True False True False True
True True True False True False True True True True False True
True True False False False False True True True True True True
False False False True True True True False True True True True
True False True True True False True True True True False True
True True True True True False False True True True True False
True False True False True True False True True True True True
True True False True True True True True True True False True
True True False True True False]
准确度: 79.33%
Process finished with exit code 0