Browse Source

Imporve least squares

fetches/feikei/master
Shuhui Bu 6 years ago
parent
commit
19d7a9c100
79 changed files with 560 additions and 191 deletions
  1. +0
    -0
      0_numpy_matplotlib_scipy_sympy/example.png
  2. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_ani1.ipynb
  3. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_ani1.py
  4. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_ani2.ipynb
  5. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_ani2.py
  6. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_full.ipynb
  7. +0
    -0
      0_numpy_matplotlib_scipy_sympy/matplotlib_simple_tutorial.ipynb
  8. +0
    -0
      0_numpy_matplotlib_scipy_sympy/numpy.ipynb
  9. +0
    -0
      0_numpy_matplotlib_scipy_sympy/scipy.ipynb
  10. +0
    -0
      0_numpy_matplotlib_scipy_sympy/stockholm_td_adj.dat
  11. +0
    -0
      0_numpy_matplotlib_scipy_sympy/sympy.ipynb
  12. +0
    -0
      0_python/00 Introduction.ipynb
  13. +0
    -0
      0_python/01 Basics.ipynb
  14. +0
    -0
      0_python/02 Print Statement.ipynb
  15. +0
    -0
      0_python/03 Data Structure.ipynb
  16. +0
    -0
      0_python/04 Data Structure 2.ipynb
  17. +0
    -0
      0_python/05 Control Flow.ipynb
  18. +0
    -0
      0_python/06 Function.ipynb
  19. +0
    -0
      0_python/07 Class.ipynb
  20. +0
    -0
      0_python/Python.pdf
  21. +0
    -0
      0_python/README.md
  22. +0
    -0
      0_python/tips/README.md
  23. +0
    -0
      0_python/tips/pip.md
  24. +0
    -0
      0_python/tips/virtualenv.md
  25. +0
    -0
      0_python/tips/virtualenv_wrapper.md
  26. +0
    -0
      1_kmeans/README.md
  27. +0
    -0
      1_kmeans/download_iris.py
  28. +0
    -0
      1_kmeans/iris.csv
  29. +0
    -0
      1_kmeans/k-means.ipynb
  30. +0
    -0
      1_kmeans/k-means.py
  31. +0
    -0
      1_kmeans/kmeans-color-vq.ipynb
  32. +0
    -0
      1_kmeans/pic/01.jpeg
  33. +0
    -0
      1_kmeans/pic/02.jpeg
  34. +0
    -0
      1_kmeans/pic/03.jpeg
  35. +0
    -0
      1_kmeans/pic/04.jpeg
  36. +0
    -0
      1_kmeans/pic/05.jpeg
  37. +0
    -0
      1_kmeans/pic/06.jpeg
  38. +0
    -0
      1_kmeans/pic/07.jpeg
  39. +0
    -0
      1_kmeans/pic/08.jpeg
  40. +0
    -0
      1_kmeans/pic/09.jpeg
  41. +0
    -0
      1_kmeans/pic/10.jpeg
  42. +0
    -0
      1_kmeans/pic/11.jpeg
  43. +0
    -0
      1_kmeans/pic/12.jpeg
  44. +0
    -0
      1_kmeans/pic/13.jpeg
  45. +0
    -0
      1_kmeans/pic/14.jpeg
  46. +0
    -0
      1_kmeans/pic/15.jpeg
  47. +0
    -0
      1_kmeans/pic/16.jpeg
  48. +0
    -0
      1_kmeans/pic/17.png
  49. +0
    -0
      1_kmeans/pic/18.png
  50. +0
    -0
      1_kmeans/pic/19.png
  51. +0
    -0
      1_kmeans/pic/20.png
  52. +0
    -0
      1_kmeans/pic/21.png
  53. +0
    -0
      1_kmeans/pic/22.png
  54. +0
    -0
      1_kmeans/pic/23.png
  55. +0
    -0
      1_kmeans/pic/24.png
  56. +0
    -0
      1_kmeans/pic/25.png
  57. +0
    -0
      1_kmeans/pic/26.png
  58. +0
    -0
      1_kmeans/pic/27.jpg
  59. +0
    -0
      1_kmeans/pic/28.png
  60. +0
    -0
      1_kmeans/pic/29.gif
  61. +0
    -0
      1_kmeans/pic/30.gif
  62. +0
    -0
      1_knn/knn_classification.ipynb
  63. +0
    -0
      1_knn/knn_classification.py
  64. +427
    -0
      1_logistic_regression/Least_squares.ipynb
  65. +133
    -5
      1_logistic_regression/Least_squares.py
  66. +0
    -0
      1_logistic_regression/Logistic_regression.ipynb
  67. +0
    -0
      1_logistic_regression/demo1/3a - Linear regression 1D.ipynb
  68. +0
    -0
      1_logistic_regression/demo1/3b - Linear regression 2D.ipynb
  69. +0
    -0
      1_logistic_regression/demo1/4 - Logistic Regression.ipynb
  70. +0
    -0
      1_logistic_regression/demo1/data/artifical_lin.txt
  71. +0
    -0
      1_logistic_regression/demo1/data/artifical_lin_2.txt
  72. +0
    -0
      1_logistic_regression/demo1/data/breast-cancer-wisconsin.data
  73. +0
    -0
      1_logistic_regression/demo1/ipython_notebook_config.py
  74. +0
    -0
      1_logistic_regression/demo1/utility.py
  75. +0
    -0
      1_logistic_regression/linear models.ipynb
  76. +0
    -0
      1_logistic_regression/linear_regression.py
  77. +0
    -0
      1_logistic_regression/logistic3.py
  78. +0
    -0
      1_logistic_regression/logistic_demo.py
  79. +0
    -186
      logistic_regression/Least_squares.ipynb

numpy_matplotlib_scipy_sympy/example.png → 0_numpy_matplotlib_scipy_sympy/example.png View File


numpy_matplotlib_scipy_sympy/matplotlib_ani1.ipynb → 0_numpy_matplotlib_scipy_sympy/matplotlib_ani1.ipynb View File


numpy_matplotlib_scipy_sympy/matplotlib_ani1.py → 0_numpy_matplotlib_scipy_sympy/matplotlib_ani1.py View File


numpy_matplotlib_scipy_sympy/matplotlib_ani2.ipynb → 0_numpy_matplotlib_scipy_sympy/matplotlib_ani2.ipynb View File


numpy_matplotlib_scipy_sympy/matplotlib_ani2.py → 0_numpy_matplotlib_scipy_sympy/matplotlib_ani2.py View File


numpy_matplotlib_scipy_sympy/matplotlib_full.ipynb → 0_numpy_matplotlib_scipy_sympy/matplotlib_full.ipynb View File


numpy_matplotlib_scipy_sympy/matplotlib_simple_tutorial.ipynb → 0_numpy_matplotlib_scipy_sympy/matplotlib_simple_tutorial.ipynb View File


numpy_matplotlib_scipy_sympy/numpy.ipynb → 0_numpy_matplotlib_scipy_sympy/numpy.ipynb View File


numpy_matplotlib_scipy_sympy/scipy.ipynb → 0_numpy_matplotlib_scipy_sympy/scipy.ipynb View File


numpy_matplotlib_scipy_sympy/stockholm_td_adj.dat → 0_numpy_matplotlib_scipy_sympy/stockholm_td_adj.dat View File


numpy_matplotlib_scipy_sympy/sympy.ipynb → 0_numpy_matplotlib_scipy_sympy/sympy.ipynb View File


python/00 Introduction.ipynb → 0_python/00 Introduction.ipynb View File


python/01 Basics.ipynb → 0_python/01 Basics.ipynb View File


python/02 Print Statement.ipynb → 0_python/02 Print Statement.ipynb View File


python/03 Data Structure.ipynb → 0_python/03 Data Structure.ipynb View File


python/04 Data Structure 2.ipynb → 0_python/04 Data Structure 2.ipynb View File


python/05 Control Flow.ipynb → 0_python/05 Control Flow.ipynb View File


python/06 Function.ipynb → 0_python/06 Function.ipynb View File


python/07 Class.ipynb → 0_python/07 Class.ipynb View File


python/Python.pdf → 0_python/Python.pdf View File


python/README.md → 0_python/README.md View File


python/tips/README.md → 0_python/tips/README.md View File


python/tips/pip.md → 0_python/tips/pip.md View File


python/tips/virtualenv.md → 0_python/tips/virtualenv.md View File


python/tips/virtualenv_wrapper.md → 0_python/tips/virtualenv_wrapper.md View File


kmeans/README.md → 1_kmeans/README.md View File


kmeans/download_iris.py → 1_kmeans/download_iris.py View File


kmeans/iris.csv → 1_kmeans/iris.csv View File


kmeans/k-means.ipynb → 1_kmeans/k-means.ipynb View File


kmeans/k-means.py → 1_kmeans/k-means.py View File


kmeans/kmeans-color-vq.ipynb → 1_kmeans/kmeans-color-vq.ipynb View File


kmeans/pic/01.jpeg → 1_kmeans/pic/01.jpeg View File


kmeans/pic/02.jpeg → 1_kmeans/pic/02.jpeg View File


kmeans/pic/03.jpeg → 1_kmeans/pic/03.jpeg View File


kmeans/pic/04.jpeg → 1_kmeans/pic/04.jpeg View File


kmeans/pic/05.jpeg → 1_kmeans/pic/05.jpeg View File


kmeans/pic/06.jpeg → 1_kmeans/pic/06.jpeg View File


kmeans/pic/07.jpeg → 1_kmeans/pic/07.jpeg View File


kmeans/pic/08.jpeg → 1_kmeans/pic/08.jpeg View File


kmeans/pic/09.jpeg → 1_kmeans/pic/09.jpeg View File


kmeans/pic/10.jpeg → 1_kmeans/pic/10.jpeg View File


kmeans/pic/11.jpeg → 1_kmeans/pic/11.jpeg View File


kmeans/pic/12.jpeg → 1_kmeans/pic/12.jpeg View File


kmeans/pic/13.jpeg → 1_kmeans/pic/13.jpeg View File


kmeans/pic/14.jpeg → 1_kmeans/pic/14.jpeg View File


kmeans/pic/15.jpeg → 1_kmeans/pic/15.jpeg View File


kmeans/pic/16.jpeg → 1_kmeans/pic/16.jpeg View File


kmeans/pic/17.png → 1_kmeans/pic/17.png View File


kmeans/pic/18.png → 1_kmeans/pic/18.png View File


kmeans/pic/19.png → 1_kmeans/pic/19.png View File


kmeans/pic/20.png → 1_kmeans/pic/20.png View File


kmeans/pic/21.png → 1_kmeans/pic/21.png View File


kmeans/pic/22.png → 1_kmeans/pic/22.png View File


kmeans/pic/23.png → 1_kmeans/pic/23.png View File


kmeans/pic/24.png → 1_kmeans/pic/24.png View File


kmeans/pic/25.png → 1_kmeans/pic/25.png View File


kmeans/pic/26.png → 1_kmeans/pic/26.png View File


kmeans/pic/27.jpg → 1_kmeans/pic/27.jpg View File


kmeans/pic/28.png → 1_kmeans/pic/28.png View File


kmeans/pic/29.gif → 1_kmeans/pic/29.gif View File


kmeans/pic/30.gif → 1_kmeans/pic/30.gif View File


knn/knn_classification.ipynb → 1_knn/knn_classification.ipynb View File


knn/knn_classification.py → 1_knn/knn_classification.py View File


+ 427
- 0
1_logistic_regression/Least_squares.ipynb
File diff suppressed because it is too large
View File


logistic_regression/Least_squares.py → 1_logistic_regression/Least_squares.py View File

@@ -17,11 +17,7 @@
# version: 3.5.2 # version: 3.5.2
# --- # ---


# # Linear regression
#
#

# ## Least squares
# # Least squares
# #
# A mathematical procedure for finding the best-fitting curve to a given set of points by minimizing the sum of the squares of the offsets ("the residuals") of the points from the curve. The sum of the squares of the offsets is used instead of the offset absolute values because this allows the residuals to be treated as a continuous differentiable quantity. However, because squares of the offsets are used, outlying points can have a disproportionate effect on the fit, a property which may or may not be desirable depending on the problem at hand. # A mathematical procedure for finding the best-fitting curve to a given set of points by minimizing the sum of the squares of the offsets ("the residuals") of the points from the curve. The sum of the squares of the offsets is used instead of the offset absolute values because this allows the residuals to be treated as a continuous differentiable quantity. However, because squares of the offsets are used, outlying points can have a disproportionate effect on the fit, a property which may or may not be desirable depending on the problem at hand.
# #
@@ -45,7 +41,10 @@ Y = d.target


# draw original data # draw original data
plt.scatter(X, Y) plt.scatter(X, Y)
plt.xlabel("X")
plt.ylabel("Y")
plt.show() plt.show()

# - # -


# ### Theory # ### Theory
@@ -108,6 +107,135 @@ x_max = np.max(X)
y_min = coeff[0] * x_min + coeff[1] y_min = coeff[0] * x_min + coeff[1]
y_max = coeff[0] * x_max + coeff[1] y_max = coeff[0] * x_max + coeff[1]


plt.scatter(X, Y, label='original data')
plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')
plt.legend()
plt.show()
# -

# ## How to fit polynomial function?
#
# If we observe a missle at some time, then how to estimate the trajectory? Acoording the physical theory, the trajectory can be formulated as:
# $$
# y = at^2 + bt + c
# $$
# The we need at least three data to compute the parameters $a, b, c$.
#
#

# +
t = np.array([2, 4, 6, 8])
#t = np.linspace(0, 10)

pa = -20
pb = 90
pc = 800

y = pa*t**2 + pb*t + pc


plt.scatter(t, y)
plt.show()
# -

# ## How to use sklearn to solve linear problem?
#
#

# +
from sklearn import linear_model

# load data
d = datasets.load_diabetes()

X = d.data[:, np.newaxis, 2]
Y = d.target

# create regression model
regr = linear_model.LinearRegression()
regr.fit(X, Y)

a, b = regr.coef_, regr.intercept_
print("a = %f, b = %f" % (a, b))

x_min = np.min(X)
x_max = np.max(X)
y_min = a * x_min + b
y_max = a * x_max + b

plt.scatter(X, Y) plt.scatter(X, Y)
plt.plot([x_min, x_max], [y_min, y_max], 'r') plt.plot([x_min, x_max], [y_min, y_max], 'r')
plt.show() plt.show()
# -

# ## How to use sklearn to fit polynomial function?

# +
# Fitting polynomial functions

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline

t = np.array([2, 4, 6, 8])

pa = -20
pb = 90
pc = 800

y = pa*t**2 + pb*t + pc

model = Pipeline([('poly', PolynomialFeatures(degree=2)),
('linear', LinearRegression(fit_intercept=False))])
model = model.fit(t[:, np.newaxis], y)
model.named_steps['linear'].coef_

# -

# ## How to estimate some missing value by the model?
#

# +
# load data
d = datasets.load_diabetes()

N = d.target.shape[0]
N_train = int(N*0.9)
N_test = N - N_train

X = d.data[:N_train, np.newaxis, 2]
Y = d.target[:N_train]

X_test = d.data[N_train:, np.newaxis, 2]
Y_test = d.target[N_train:]

# create regression model
regr = linear_model.LinearRegression()
regr.fit(X, Y)

Y_est = regr.predict(X_test)
print("Y_est = ", Y_est)
print("Y_test = ", Y_test)
err = (Y_est - Y_test)**2
score = regr.score(X_test, Y_test)
print("err = %f, score = %f" % (np.sqrt(np.sum(err))/N_test, score))


# plot data
a, b = regr.coef_, regr.intercept_
print("a = %f, b = %f" % (a, b))

x_min = np.min(X)
x_max = np.max(X)
y_min = a * x_min + b
y_max = a * x_max + b


plt.scatter(X, Y, label='train data')
plt.scatter(X_test, Y_test, label='test data')
plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')
plt.legend()
plt.show()
# -



logistic_regression/Logistic_regression.ipynb → 1_logistic_regression/Logistic_regression.ipynb View File


logistic_regression/demo1/3a - Linear regression 1D.ipynb → 1_logistic_regression/demo1/3a - Linear regression 1D.ipynb View File


logistic_regression/demo1/3b - Linear regression 2D.ipynb → 1_logistic_regression/demo1/3b - Linear regression 2D.ipynb View File


logistic_regression/demo1/4 - Logistic Regression.ipynb → 1_logistic_regression/demo1/4 - Logistic Regression.ipynb View File


logistic_regression/demo1/data/artifical_lin.txt → 1_logistic_regression/demo1/data/artifical_lin.txt View File


logistic_regression/demo1/data/artifical_lin_2.txt → 1_logistic_regression/demo1/data/artifical_lin_2.txt View File


logistic_regression/demo1/data/breast-cancer-wisconsin.data → 1_logistic_regression/demo1/data/breast-cancer-wisconsin.data View File


logistic_regression/demo1/ipython_notebook_config.py → 1_logistic_regression/demo1/ipython_notebook_config.py View File


logistic_regression/demo1/utility.py → 1_logistic_regression/demo1/utility.py View File


logistic_regression/linear models.ipynb → 1_logistic_regression/linear models.ipynb View File


logistic_regression/linear_regression.py → 1_logistic_regression/linear_regression.py View File


logistic_regression/logistic3.py → 1_logistic_regression/logistic3.py View File


logistic_regression/logistic_demo.py → 1_logistic_regression/logistic_demo.py View File


+ 0
- 186
logistic_regression/Least_squares.ipynb
File diff suppressed because it is too large
View File


Loading…
Cancel
Save