forked from lmaxeniro/machinelearninginaction3x
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Peter Harrington
committed
Mar 30, 2017
1 parent
9260410
commit ecced6a
Showing
108 changed files
with
1,026,995 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
This folder contains the code used to create the plots in the examples. | ||
The code is not very difficult, however I never meant for it to go out to readers. | ||
It�s not the cleanest code nor very well documented. Most of the time I threw | ||
together a dirty hack to make the plots look right, with no thoughts about | ||
efficiency or readability. I�m providing it as-is, if you have a question on | ||
how it works or why I did something please ask, I will be more than happy to answer | ||
any questions. | ||
Peter Harrington |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
''' | ||
Created on Oct 6, 2010 | ||
@author: Peter | ||
''' | ||
from numpy import * | ||
import matplotlib | ||
import matplotlib.pyplot as plt | ||
from matplotlib.patches import Rectangle | ||
|
||
|
||
n = 1000 #number of points to create | ||
xcord = zeros((n)) | ||
ycord = zeros((n)) | ||
markers =[] | ||
colors =[] | ||
fw = open('testSet.txt','w') | ||
for i in range(n): | ||
[r0,r1] = random.standard_normal(2) | ||
myClass = random.uniform(0,1) | ||
if (myClass <= 0.16): | ||
fFlyer = random.uniform(22000, 60000) | ||
tats = 3 + 1.6*r1 | ||
markers.append(20) | ||
colors.append(2.1) | ||
classLabel = 1 #'didntLike' | ||
print ("%d, %f, class1") % (fFlyer, tats) | ||
elif ((myClass > 0.16) and (myClass <= 0.33)): | ||
fFlyer = 6000*r0 + 70000 | ||
tats = 10 + 3*r1 + 2*r0 | ||
markers.append(20) | ||
colors.append(1.1) | ||
classLabel = 1 #'didntLike' | ||
print ("%d, %f, class1") % (fFlyer, tats) | ||
elif ((myClass > 0.33) and (myClass <= 0.66)): | ||
fFlyer = 5000*r0 + 10000 | ||
tats = 3 + 2.8*r1 | ||
markers.append(30) | ||
colors.append(1.1) | ||
classLabel = 2 #'smallDoses' | ||
print ("%d, %f, class2") % (fFlyer, tats) | ||
else: | ||
fFlyer = 10000*r0 + 35000 | ||
tats = 10 + 2.0*r1 | ||
markers.append(50) | ||
colors.append(0.1) | ||
classLabel = 3 #'largeDoses' | ||
print ("%d, %f, class3") % (fFlyer, tats) | ||
if (tats < 0): tats =0 | ||
if (fFlyer < 0): fFlyer =0 | ||
xcord[i] = fFlyer; ycord[i]=tats | ||
fw.write("%d\t%f\t%f\t%d\n" % (fFlyer, tats, random.uniform(0.0, 1.7), classLabel)) | ||
|
||
fw.close() | ||
fig = plt.figure() | ||
ax = fig.add_subplot(111) | ||
ax.scatter(xcord,ycord, c=colors, s=markers) | ||
type1 = ax.scatter([-10], [-10], s=20, c='red') | ||
type2 = ax.scatter([-10], [-15], s=30, c='green') | ||
type3 = ax.scatter([-10], [-20], s=50, c='blue') | ||
ax.legend([type1, type2, type3], ["Class 1", "Class 2", "Class 3"], loc=2) | ||
#ax.axis([-5000,100000,-2,25]) | ||
plt.xlabel('Frequent Flyier Miles Earned Per Year') | ||
plt.ylabel('Percentage of Body Covered By Tatoos') | ||
plt.show() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
''' | ||
Created on Oct 6, 2010 | ||
@author: Peter | ||
''' | ||
from numpy import * | ||
import matplotlib | ||
import matplotlib.pyplot as plt | ||
from matplotlib.patches import Rectangle | ||
|
||
|
||
n = 1000 #number of points to create | ||
xcord1 = []; ycord1 = [] | ||
xcord2 = []; ycord2 = [] | ||
xcord3 = []; ycord3 = [] | ||
markers =[] | ||
colors =[] | ||
fw = open('testSet.txt','w') | ||
for i in range(n): | ||
[r0,r1] = random.standard_normal(2) | ||
myClass = random.uniform(0,1) | ||
if (myClass <= 0.16): | ||
fFlyer = random.uniform(22000, 60000) | ||
tats = 3 + 1.6*r1 | ||
markers.append(20) | ||
colors.append(2.1) | ||
classLabel = 1 #'didntLike' | ||
xcord1.append(fFlyer); ycord1.append(tats) | ||
elif ((myClass > 0.16) and (myClass <= 0.33)): | ||
fFlyer = 6000*r0 + 70000 | ||
tats = 10 + 3*r1 + 2*r0 | ||
markers.append(20) | ||
colors.append(1.1) | ||
classLabel = 1 #'didntLike' | ||
if (tats < 0): tats =0 | ||
if (fFlyer < 0): fFlyer =0 | ||
xcord1.append(fFlyer); ycord1.append(tats) | ||
elif ((myClass > 0.33) and (myClass <= 0.66)): | ||
fFlyer = 5000*r0 + 10000 | ||
tats = 3 + 2.8*r1 | ||
markers.append(30) | ||
colors.append(1.1) | ||
classLabel = 2 #'smallDoses' | ||
if (tats < 0): tats =0 | ||
if (fFlyer < 0): fFlyer =0 | ||
xcord2.append(fFlyer); ycord2.append(tats) | ||
else: | ||
fFlyer = 10000*r0 + 35000 | ||
tats = 10 + 2.0*r1 | ||
markers.append(50) | ||
colors.append(0.1) | ||
classLabel = 3 #'largeDoses' | ||
if (tats < 0): tats =0 | ||
if (fFlyer < 0): fFlyer =0 | ||
xcord3.append(fFlyer); ycord3.append(tats) | ||
|
||
fw.close() | ||
fig = plt.figure() | ||
ax = fig.add_subplot(111) | ||
#ax.scatter(xcord,ycord, c=colors, s=markers) | ||
type1 = ax.scatter(xcord1, ycord1, s=20, c='red') | ||
type2 = ax.scatter(xcord2, ycord2, s=30, c='green') | ||
type3 = ax.scatter(xcord3, ycord3, s=50, c='blue') | ||
ax.legend([type1, type2, type3], ["Did Not Like", "Liked in Small Doses", "Liked in Large Doses"], loc=2) | ||
ax.axis([-5000,100000,-2,25]) | ||
plt.xlabel('Frequent Flyier Miles Earned Per Year') | ||
plt.ylabel('Percentage of Time Spent Playing Video Games') | ||
plt.show() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
''' | ||
Created on Oct 27, 2010 | ||
@author: Peter | ||
''' | ||
from numpy import * | ||
import kNN | ||
import matplotlib | ||
import matplotlib.pyplot as plt | ||
fig = plt.figure() | ||
ax = fig.add_subplot(111) | ||
datingDataMat,datingLabels = kNN.file2matrix('datingTestSet.txt') | ||
#ax.scatter(datingDataMat[:,1], datingDataMat[:,2]) | ||
ax.scatter(datingDataMat[:,1], datingDataMat[:,2], 15.0*array(datingLabels), 15.0*array(datingLabels)) | ||
ax.axis([-2,25,-0.2,2.0]) | ||
plt.xlabel('Percentage of Time Spent Playing Video Games') | ||
plt.ylabel('Liters of Ice Cream Consumed Per Week') | ||
plt.show() |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
The code for the examples in Ch.2 is contained in the python module: kNN.py. | ||
The examples assume that datingTestSet.txt is in the current working directory. | ||
Folders testDigits, and trainingDigits are assumed to be in this folder also. |
Oops, something went wrong.