机器学习之0-机器学习概述

来源:互联网 发布:域名过期多少钱续费 编辑:程序博客网 时间:2024/05/16 18:30

1.背景

机器学习的本质是预测新数据

意义:机器学习是目前信息技术中最激动人心的方向之一。

应用场景:搜索、图片分类、过滤垃圾邮件。

应用领域:计算生物学、机械应用、手写识别、自然语言处理或计算机视觉等。

2.定义

定义:一个程序被认为能从经验 E 中学习,解决任务 T,达到性能度量值P,当且仅当,有了经验 E 后,经过 P 评判,程序在处理 T 时的性能有所提升。以下棋举例:经验E 就是程序上万次的自我练习的经验而任务T 就是下棋。P是它在与一些新的对手比赛时,赢得比赛的概率。

3.机器学习分类

机器学习分为监督学习无监督学习

监督学习:数据附带了我们要预测的附加属性。从已有数据中发现关系:由多个输入映射一个输出。并用数学模型表示,将新数据用这数学模型运算得到新的输出。

监督学习又分为分类回归

分类 :离散
回归 :连续

无监督学习:将已有数据进行分类:只有输入,没有输出,将输入的数据按照学习到的标准进行分类。

4.机器学习的三要素

模型+策略+算法

5.数据分类

数据集分为训练集和测试集。

6.标准数据集

鸢尾花手写数字数据集进行分类
波士顿房价数据集回归

7.学习方法

学习方法:理论与实践相结合,即多学机器学习理论和多通过工具实现这些理论。

8.学习心经

学习算法有很多种,选取哪一种更合理是一个技术活;
数据背后隐藏规律,如果没有规律,学习算法是没有办法学习的。

9.代码

from sklearn import datasets
iris = datasets.load_iris()digits = datasets.load_digits()
print(digits.data)
[[  0.   0.   5. ...,   0.   0.   0.] [  0.   0.   0. ...,  10.   0.   0.] [  0.   0.   0. ...,  16.   9.   0.] ...,  [  0.   0.   1. ...,   6.   0.   0.] [  0.   0.   2. ...,  12.   0.   0.] [  0.   0.  10. ...,  12.   1.   0.]]
print(digits.data)
[[  0.   0.   5. ...,   0.   0.   0.] [  0.   0.   0. ...,  10.   0.   0.] [  0.   0.   0. ...,  16.   9.   0.] ...,  [  0.   0.   1. ...,   6.   0.   0.] [  0.   0.   2. ...,  12.   0.   0.] [  0.   0.  10. ...,  12.   1.   0.]]
print(digits.images[0])
[[  0.   0.   5.  13.   9.   1.   0.   0.] [  0.   0.  13.  15.  10.  15.   5.   0.] [  0.   3.  15.   2.   0.  11.   8.   0.] [  0.   4.  12.   0.   0.   8.   8.   0.] [  0.   5.   8.   0.   0.   9.   8.   0.] [  0.   4.  11.   0.   1.  12.   7.   0.] [  0.   2.  14.   5.  10.  12.   0.   0.] [  0.   0.   6.  13.  10.   0.   0.   0.]]
from sklearn import svm
clf = svm.SVC(gamma = 0.001, C = 100.)
clf.fit(digits.data[:-1], digits.target[:-1])
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma=0.001, kernel='rbf',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
clf.predict(digits.data[-1 :])
array([8])
from sklearn import svm
from sklearn import datasets
clf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
import pickle
s = pickle.dumps(clf)
clf2 = pickle.loads(s)
clf2.predict(X[0:1])
array([0])
y[0]
0
from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl')
['filename.pkl']
clf = joblib.load('filename.pkl')
import numpy as np
from sklearn import random_projection
rng = np.random.RandomState(0)
X = rng.rand(10,2000)
X = rng.rand(10,2000)
X = np.array(X,dtype='float32')
X.dtype
dtype('float32')
transformer = random_projection.GaussianRandomProjection()
X_new = transformer.fit_transform(X)
X_new.dtype
dtype('float64')
from sklearn import datasets
from sklearn.svm import SVC
iris = datasets.load_iris()
clf = SVC()
clf.fit(iris.data, iris.target)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
list(clf.predict(iris.data[:3]))
[0, 0, 0]
clf.fit(iris.data, iris.target_names[iris.target])
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
list(clf.predict(iris.data[:3]))
['setosa', 'setosa', 'setosa']
import numpy as np
from sklearn.svm import SVC
rng = np.random.RandomState(0)
X = rng.rand(100, 10)
y = rng.binomial(1, 0.5, 100)
X_test = rng.rand(5, 10)
clf = SVC()
clf.set_params(kernel='linear').fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma='auto', kernel='linear',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
clf.predict(X_test)
array([1, 0, 1, 1, 0])
clf.set_params(kernel='rbf').fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',  max_iter=-1, probability=False, random_state=None, shrinking=True,  tol=0.001, verbose=False)
clf.predict(X_test)
array([0, 0, 0, 1, 0])
from sklearn.svm import SVC
from sklearn.multiclass import OneVsRestClassifier
from sklearn.preprocessing import LabelBinarizer
X = [[1, 2], [2, 4], [4, 5], [3, 2], [3, 1]]
y = [0, 0, 1, 1, 2]
classif = OneVsRestClassifier(estimator=SVC(random_state=0))
classif.fit(X, y).predict(X)
array([0, 0, 1, 1, 2])
y = LabelBinarizer().fit_transform(y)
classif.fit(X, y).predict(X)
array([[1, 0, 0],       [1, 0, 0],       [0, 1, 0],       [0, 0, 0],       [0, 0, 0]])

9.参考资料

[1] An introduction to machine learning with scikit-learn

0 0
原创粉丝点击