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

xiaoxiao2021-02-28  109

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

转载请注明原文地址: https://www.6miu.com/read-80933.html

最新回复(0)