• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

NapkinML: NapkinML 是 NumPy 中机器学习模型的袖珍实现

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

NapkinML

开源软件地址:

https://gitee.com/mirrors/NapkinML

开源软件介绍:

NapkinML

About

Pocket-sized implementations of machine learning models, most of which will fit in a tweet.

Table of Contents

Installation

$ git clone https://github.com/eriklindernoren/NapkinML$ cd NapkinML$ sudo python setup.py install

Implementations

K-Means

class KMeans:    def fit(self, X, k, n_iter=200):        centers = random.sample(list(X), k)        for i in range(n_iter):            clusters = np.argmin(cdist(X, centers), axis=1)            centers = np.array([X[clusters == c].mean(0) for c in clusters])        return clusters
$ python napkin_ml/examples/kmeans.py

Figure: K-Means clustering of the Iris dataset.

K-Nearest Neighbors

class KNN:    def predict(self, k, Xt, X, y):        idx = np.argsort(cdist(Xt, X))[:, :k]        y_pred = [np.bincount(y[i]).argmax() for i in idx]        return y_pred
$ python napkin_ml/examples/knn.py

Figure: Classification of the Iris dataset with K-Nearest Neighbors.

Linear Regression

class LinearRegression:    def fit(self, X, y):        self.w = np.linalg.lstsq(X, y, rcond=None)[0]    def predict(self, X):        return X.dot(self.w)
$ python napkin_ml/examples/linear_regression.py

Figure: Linear Regression.

Linear Discriminant Analysis

class LDA:    def fit(self, X, y):        cov_sum = sum([np.cov(X[y == val], rowvar=False) for val in [0, 1]])        mean_diff = X[y == 0].mean(0) - X[y == 1].mean(0)        self.w = np.linalg.inv(cov_sum).dot(mean_diff)    def predict(self, X):        return 1 * (X.dot(self.w) < 0)

Logistic Regression

class LogisticRegression:    def fit(self, X, y, n_iter=4000, lr=0.01):        self.w = np.random.rand(X.shape[1])        for _ in range(n_iter):            self.w -= lr * (self.predict(X) - y).dot(X)    def predict(self, X):        return sigmoid(X.dot(self.w))
$ python napkin_ml/examples/logistic_regression.py

Figure: Classification with Logistic Regression.

Multilayer Perceptron

class MLP:    def fit(self, X, y, n_epochs=4000, lr=0.01, n_units=10):        self.w = np.random.rand(X.shape[1], n_units)        self.v = np.random.rand(n_units, y.shape[1])        for _ in range(n_epochs):            h_out = sigmoid(X.dot(self.w))            out = softmax(h_out.dot(self.v))            self.v -= lr * h_out.T.dot(out - y)            self.w -= lr * X.T.dot((out - y).dot(self.v.T) * (h_out * (1 - h_out)))    def predict(self, X):        return softmax(sigmoid(X.dot(self.w)).dot(self.v))
$ python napkin_ml/examples/mlp.py

Figure: Classification of the Iris dataset with a Multilayer Perceptron
with one hidden layer.

Principal Component Analysis

class PCA:    def transform(self, X, dim):        _, S, V = np.linalg.svd(X - X.mean(0), full_matrices=True)        idx = S.argsort()[::-1][:dim]        return X.dot(V[idx].T)
$ python napkin_ml/examples/pca.py

Figure: Dimensionality reduction with Principal Component Analysis.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
mitagger: Medical Image Tagger发布时间:2022-03-24
下一篇:
田德宇/City Intelligence发布时间:2022-03-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap