1、大数据、大数据,数据很重要

本章将告诉大家在这个大千世界中,怎么获得你想要的数据的方法。

数据是基础,没有足够量的数据再好的算法也是白搭。这个问题到现在来理解似乎很容易了,举几个例子:

  • 试想一下没有很多棋盘数据,AlphaGo能够战胜李世石吗?
  • 如果没有很多基础经济数据,那么国家能够预测明年的GDP吗?难道真的和有的人说的,GDP是内定的。 这恐怕不是。
  • 例如今年春运,你受铁道总公司委托开发一个预测今年人流量的程序,从而决定哪些线路需要多开,哪些线路需要少开。如果没有以往的历史大数据,那么你该怎么做。
  • 在说说高考,如果没有几次模拟考试的成绩,是有神相助,还是祖坟冒青烟,你在没有分数做参考的情况下,这么有信心报考心仪的大学。

说了这么多,只想说明大数据(大量的数据)真的很重要,在有很多数据的情况下,我们的人工智能才有意义。数据少了,人工智能的算法可能出现很多的问题。在我和我的同事的实践中,再小的问题,如果没有几百万条数据支撑,结果很可能不准确。

什么几百万的数据,很多同学可能迷惑,我们课程中很少用到了几百万数据啊?是的,课程为了学习方便,我们并没有使用太多的数据,这并不影响大家对人工智能原理的学习哦。

好了,这节课我们将教大家怎么获取数据。

2、一个棘手的问题:怎么获得大量的数据?

很多同学经常问我,怎么获得大量的数据,有什么方法。我的回答似乎很不负责任,我会直接回答他: 获得大量数据的方法,很简单,就是收集。处在不同的地方有不同的收集方式。

1、大公司在运营中收集数据

大公司在多年来的运营中很容易积累起来一些数据。例如百度,陆琦来了之后,全面发展人工智能。百度有如此底气,很大程序上是因为,这10来年,它积累了大量的用户数据。又如阿里巴巴,马云想统计一下全国哪个城市女生的胸最大,哪个城市女生的胸最小,易如反掌。讲到“胸”是否勾起了您的兴趣,那么继续往下学吧。

2、对于我们个人来说

对于我们个人来说,怎么获得大量的数据,找大公司要,显然人家不会给,你给人家钱,人家也不会给。不要说什么高尚的话: 知识和数据应该共享,为什么要收钱

我很难说服认为”知识不应该收费“的同学,为什么这句话不对,因为这样的同学,认为知识不应该收钱。如按照此理论,凡是知识分子的劳动成果都是免费的,这些知识分子中也包括你我。那我想反问一下这些认为“知识不应该收费的情操高尚的人”,你们靠什么吃饭?。

在目前这个社会,“知识免费”显然是不好的。创造知识的人无法通过自己的劳动获得收入,那他的劳动有何价值呢?好了,讨论了一些题外话。我们现在,列出几种针对个人而言,获得一些实验数据的方法:

3、个人如何获得研究数据

1、通过爬虫获得数据

例如,要统计全国女性胸部大小,是A多,还是C多,有简单的办法呢?不可能在街上看到一个女孩,就给她量一下胸围大小吧,估计,这样去做的人,会被打死。 这里告诉大家一个方法,通过爬虫程序,自己到京东那里收集一下不同大小文胸的销售量,即可知道全国哪个胸型最多。是不是很聪明呢?

2、到一些网站去下载数据

总有一些学术机构和热心肠的人为我们提供了一些研究数据。虽然样本数量比较少,但是对我们学习来说,还是足够的。

3、scikit learn提供了一些数据集

为了方便大家学习,scikit learn在其安装包中也包含了一些数据,我们的部分课程会使用到这些数据。在此,我代表各位同学向scikit learn团队表示感谢,哈哈,是不是太冠冕堂皇了。

4、人工智能中文网为大家准备的数据集

对于初学者来说,收集数据可能会占用您很多的时间。我们花了很多时间为大家整理了一些数据,大家有福了,可以通过下面的链接下载哦。

4、鸢尾花数据集

这里有没有对植物感兴趣的同学,

鸢尾(学名:Iris tectorum Maxim. )又名:蓝蝴蝶、紫蝴蝶、扁竹花等,scikit learn中包含了一些与植物相关的数据。下图是一种蓝蝴蝶:

我们通过下面的python代码,可以加载一份鸢尾花数据,并存储到iris.txt文件中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding: utf8 -*-
 
import numpy as np
# 导入sklearn数据集
from sklearn import datasets
 
# 设置打印完整的数组,设置这段代码后,np数组才能被print完整打印出来,否则会为了节省屏幕空间,中间部分用省略号代替
np.set_printoptions(threshold='nan')
 
# 加载鸢尾花数据,iris是莺尾花的意思
iris = datasets.load_iris()
 
# 打印数据
print iris
 
# 写入文件中,在你的电脑上运行,请改到相应的路径
f = open(r'/Users/musk/study/work/ai/iris.txt','w')
print >> f,iris
f.close()

上面代码执行后,在控制台打印的结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{'target_names': array(['setosa', 'versicolor', 'virginica'], dtype='|S10'), 
 'data': array([[ 5.1,  3.5,  1.4,  0.2],
       [ 4.9,  3. ,  1.4,  0.2],
       [ 4.7,  3.2,  1.3,  0.2],
       .......
       [ 6.2,  3.4,  5.4,  2.3],
       [ 5.9,  3. ,  5.1,  1.8]]),
       'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]), 
       'DESCR': 'Iris Plants Database\n====================\n\nNotes\n-----\nData Set Characteristics:\n    :Number of Instances: 150 (50 in each of three classes)\n    :Number of Attributes: 4 numeric, predictive attributes and the class\n    :Attribute Information:\n        - sepal length in cm\n        - sepal width in cm\n        - petal length in cm\n        - petal width in cm\n        - class:\n                - Iris-Setosa\n                - Iris-Versicolour\n                - Iris-Virginica\n    :Summary Statistics:\n\n    ============== ==== ==== ======= ===== ====================\n                    Min  Max   Mean    SD   Class Correlation\n    ============== ==== ==== ======= ===== ====================\n    sepal length:   4.3  7.9   5.84   0.83    0.7826\n    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n    petal width:    0.1  2.5   1.20  0.76     0.9565  (high!)\n    ============== ==== ==== ======= ===== ====================\n\n    :Missing Attribute Values: None\n    :Class Distribution: 33.3% for each of 3 classes.\n    :Creator: R.A. Fisher\n    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n    :Date: July, 1988\n\nThis is a copy of UCI ML iris datasets.\nhttp://archive.ics.uci.edu/ml/datasets/Iris\n\nThe famous Iris database, first used by Sir R.A Fisher\n\nThis is perhaps the best known database to be found in the\npattern recognition literature.  Fisher\'s paper is a classic in the field and\nis referenced frequently to this day.  (See Duda & Hart, for example.)  The\ndata set contains 3 classes of 50 instances each, where each class refers to a\ntype of iris plant.  One class is linearly separable from the other 2; the\nlatter are NOT linearly separable from each other.\n\nReferences\n----------\n   - Fisher,R.A. "The use of multiple measurements in taxonomic problems"\n     Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to\n     Mathematical Statistics" (John Wiley, NY, 1950).\n   - Duda,R.O., & Hart,P.E. (1973) Pattern Classification and Scene Analysis.\n     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n   - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System\n     Structure and Classification Rule for Recognition in Partially Exposed\n     Environments".  IEEE Transactions on Pattern Analysis and Machine\n     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n   - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactions\n     on Information Theory, May 1972, 431-433.\n   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS II\n     conceptual clustering system finds 3 classes in the data.\n   - Many, many more ...\n', 'feature_names': ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']}

如果不方便阅读,可以点击iris.txt下载下来看,下面我们对这份数据进行详细分析:

target_name属性是一个数组,值为’setosa’(刺芒野古草), ‘versicolor’(变色鸢尾花), ‘virginica’(维吉尼亚鸢尾),表示3种花,这几种花都不在中国,所以大家不认识也罢。这个信息只是描述数据本身意义的,不是真正的数据。我们知道大部分真正的数据,都是由数字组成。

这个数据集包含了3类数据,及三类花。 每一类花有50个样本,所以总共有150个样本。每个样本有4个数据。所以data有150行,没一行的数组中有4个属性,分别是:花萼,花瓣,雄蕊和雌蕊

target是包含150个元素的数组,用来表示150个样本,每个属于哪一类。取0到3的值,分别表示’setosa’(刺芒野古草), ‘versicolor’(变色鸢尾花), ‘virginica’(维吉尼亚鸢尾)这几种花。

5、用于数字识别的数据

数字样本中存储了数字识别的数据,包含了1797条记录,每条记录又是一个8行8列的矩阵,存储的是每幅数字图里的像素点信息。如下图是一个数字5:

每一个字被网格包含起来,其中上图黑色的部分用1来表示,白色的部分有0来表示。这样就构成了一个矩阵。

1
2
3
4
5
6
7
8
9
[[0,0,1,1,0,0,0,0],
 [0,0,1,1,1,1,0,0],
 [0,0,1,1,1,1,0,0],
 [0,0,1,1,1,1,0,0],
 [0,0,0,1,1,1,1,0],
 [0,0,0,0,1,1,1,0],
 [0,0,1,1,1,1,1,0],
 [0,0,1,1,1,1,0,0]
]

1、加载数字数据

下面的代码加载了一份数字数据,里面存放了很多数字的像素点表示,主要用于数字识别,如车牌识别,身份证识别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf8 -*-
import numpy as np
from sklearn.datasets import load_digits
 
 
# 设置打印完整的数组
np.set_printoptions(threshold='nan')
 
digits = load_digits()
 
print digits
 
# 写入文件中,在你的电脑上运行,请改到相应的路径
f = open(r'D:\ai\digits.txt','w')
print >> f,digits
f.close()

最终的数据可以在下面看到,也可以在代码文件夹中digits.txt找到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{'images': array([[[  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.]],
 
       [[  0.,   0.,   0.,  12.,  13.,   5.,   0.,   0.],
        [  0.,   0.,   0.,  11.,  16.,   9.,   0.,   0.],
        [  0.,   0.,   3.,  15.,  16.,   6.,   0.,   0.],
        [  0.,   7.,  15.,  16.,  16.,   2.,   0.,   0.],
        [  0.,   0.,   1.,  16.,  16.,   3.,   0.,   0.],
        [  0.,   0.,   1.,  16.,  16.,   6.,   0.,   0.],
        [  0.,   0.,   1.,  16.,  16.,   6.,   0.,   0.],
 
'target_names': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'DESCR': "Optical Recognition of Handwritten Digits Data Set\n===================================================\n\nNotes\n-----\nData Set Characteristics:\n    :Number of Instances: 5620\n    :Number of Attributes: 64\n    :Attribute Information: 8x8 image of integer pixels in the range 0..16.\n    :Missing Attribute Values: None\n    :Creator: E. Alpaydin (alpaydin '@' boun.edu.tr)\n    :Date: July; 1998\n\nThis is a copy of the test set of the UCI ML hand-written digits datasets\nhttp://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits\n\nThe data set contains images of hand-written digits: 10 classes where\neach class refers to a digit.\n\nPreprocessing programs made available by NIST were used to extract\nnormalized bitmaps of handwritten digits from a preprinted form. From a\ntotal of 43 people, 30 contributed to the training set and different 13\nto the test set. 32x32 bitmaps are divided into nonoverlapping blocks of\n4x4 and the number of on pixels are counted in each block. This generates\nan input matrix of 8x8 where each element is an integer in the range\n0..16. This reduces dimensionality and gives invariance to small\ndistortions.\n\nFor info on NIST preprocessing routines, see M. D. Garris, J. L. Blue, G.\nT. Candela, D. L. Dimmick, J. Geist, P. J. Grother, S. A. Janet, and C.\nL. Wilson, NIST Form-Based Handprint Recognition System, NISTIR 5469,\n1994.\n\nReferences\n----------\n  - C. Kaynak (1995) Methods of Combining Multiple Classifiers and Their\n    Applications to Handwritten Digit Recognition, MSc Thesis, Institute of\n    Graduate Studies in Science and Engineering, Bogazici University.\n  - E. Alpaydin, C. Kaynak (1998) Cascading Classifiers, Kybernetika.\n  - Ken Tang and Ponnuthurai N. Suganthan and Xi Yao and A. Kai Qin.\n    Linear dimensionalityreduction using relevance weighted LDA. School of\n    Electrical and Electronic Engineering Nanyang Technological University.\n    2005.\n  - Claudio Gentile. A New Approximate Maximal Margin Classification\n    Algorithm. NIPS. 2000.\n", 
 
'target': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2,
       3, 4, 5, 6, 7, 8, 9, 0, 9, 5, 5, 6, 5, 0, 9, 8, 9, 8, 4, 1, 7, 7, 3,
8, 9, 8])}

上面的数据因为篇幅,省略了很大部分,但是不影响我们的理解。

image中包含了1797个数字,每个数字是一个8行8列的矩阵。

target表示每一个矩阵表示的是哪一个数字,所以是0到9总的值。

2、数据可视化为图片

这一节,将一个数据转化为图片,注释中已经很清楚的解释了代码的意思了,大家可以仔细看一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf8 -*-
 
from sklearn.datasets import load_digits
# 导入matplotlib 绘图库
import matplotlib.pyplot as plt
 
# 加载数字数据,load_digits将存储在文件中的文本数据,加载进来
digits = load_digits()
# 打印数据的维度,digits.data 的维度是(1797,64),表示有1797个数字样本,每个样本有64个属性
print(digits.data.shape)
 
# 生成一个黑白图,因为digits.data只存储了一个黑白通道的颜色,所以不能绘制彩色图
plt.gray()
# matshow是plt提供的函数,它是将一个数组或者矩阵以图像的方式绘制出来。
# digits.images是一个大小为1797的数组,可以取0到1797之间的数字
plt.matshow(digits.images[4])
# 显示绘制的图片
plt.show()

运行代码,绘制出来的图像如下,这是一个值为4的图片。

上面这幅图像虽然很模糊,但是我们基本能看出它是数字4。digits数据集中有1000多个数字样本,为数字识别提供了充足的样本数据,这里我们只需要知道digits是一个数字集,就可以了,后面的中高级课程,我们将给大家讲解如何写代码,来识别这些数字,不要离开哦。

5、波士顿房价数据集

Scikit learn工具包也包含了一份波士顿郊区的房价数据集,这份数据采集自1993年,已经非常久了,不过对目前我们研究机器学习的知识还是有一定的帮助的。

加载波士顿房价数据的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding: utf8 -*-
 
# 本段代码加载波士顿房价信息
 
import numpy as np
# 导入波士顿房价数据集
from sklearn.datasets import load_boston
 
# 设置打印出完整的数组,不以省略号省略数组
np.set_printoptions(threshold='nan')
 
# 加载波士顿房价
boston = load_boston()
 
f = open(r'D:\ai\boston.txt','w')
# 将boston房价数据写入文件f中
print >> f,boston
# 关闭文件流,保存文件
f.close()

运行代码,在控制台会打印出如下数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{'data': array([[  6.32000000e-03,   1.80000000e+01,   2.31000000e+00,
          0.00000000e+00,   5.38000000e-01,   6.57500000e+00,
          6.52000000e+01,   4.09000000e+00,   1.00000000e+00,
          2.96000000e+02,   1.53000000e+01,   3.96900000e+02,
          4.98000000e+00],
       [  2.73100000e-02,   0.00000000e+00,   7.07000000e+00,
          0.00000000e+00,   4.69000000e-01,   6.42100000e+00,
          7.89000000e+01,   4.96710000e+00,   2.00000000e+00,
          2.42000000e+02,   1.78000000e+01,   3.96900000e+02,
          9.14000000e+00],
 
 
 
       [  4.74100000e-02,   0.00000000e+00,   1.19300000e+01,
          0.00000000e+00,   5.73000000e-01,   6.03000000e+00,
          8.08000000e+01,   2.50500000e+00,   1.00000000e+00,
          2.73000000e+02,   2.10000000e+01,   3.96900000e+02,
          7.88000000e+00]]),
 
      'feature_names': array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
       'TAX', 'PTRATIO', 'B', 'LSTAT'], 
      dtype='|S7'), 'DESCR': "Boston House Prices dataset\n===========================\n\nNotes\n------\nData Set Characteristics:  \n\n    :Number of Instances: 506 \n\n    :Number of Attributes: 13 numeric/categorical predictive\n    \n    :Median Value (attribute 14) is usually the target\n\n    :Attribute Information (in order):\n        - CRIM     per capita crime rate by town\n        - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.\n        - INDUS    proportion of non-retail business acres per town\n        - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n        - NOX      nitric oxides concentration (parts per 10 million)\n        - RM       average number of rooms per dwelling\n        - AGE      proportion of owner-occupied units built prior to 1940\n        - DIS      weighted distances to five Boston employment centres\n        - RAD      index of accessibility to radial highways\n        - TAX      full-value property-tax rate per $10,000\n        - PTRATIO  pupil-teacher ratio by town\n        - B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n        - LSTAT    % lower status of the population\n        - MEDV     Median value of owner-occupied homes in $1000's\n\n    :Missing Attribute Values: None\n\n    :Creator: Harrison, D. and Rubinfeld, D.L.\n\nThis is a copy of UCI ML housing dataset.\nhttp://archive.ics.uci.edu/ml/datasets/Housing\n\n\nThis dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n\nThe Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\nprices and the demand for clean air', J. Environ. Economics & Management,\nvol.5, 81-102, 1978.   Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n...', Wiley, 1980.   N.B. Various transformations are used in the table on\npages 244-261 of the latter.\n\nThe Boston house-price data has been used in many machine learning papers that address regression\nproblems.   \n     \n**References**\n\n   - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n   - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n   - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n", 
 
      'target': array([ 24. ,  21.6,  34.7,  33.4,  36.2,  28.7,  22.9,  27.1,  16.5,
        18.9,  15. ,  18.9,  21.7,  20.4,  18.2,  19.9,  23.1,  17.5,
        20.2,  18.2,  13.6,  19.6,  15.2,  14.5,  15.6,  13.9,  16.6,
        14.8,  18.4,  21. ,  12.7,  14.5,  13.2,  13.1,  13.5,  18.9,
        20. ,  21. ,  24.7,  30.8,  34.9,  26.6,  25.3,  24.7,  21.2,
        19.3,  20. ,  16.6,  14.4,  19.4,  19.7,  20.5,  25. ,  23.4,
 
 
        12. ,  14.6,  21.4,  23. ,  23.7,  25. ,  21.8,  20.6,  21.2,
        19.1,  20.6,  15.2,   7. ,   8.1,  13.6,  20.1,  21.8,  24.5,
        23.1,  19.7,  18.3,  21.2,  17.5,  16.8,  22.4,  20.6,  23.9,
        22. ,  11.9])}

点击波士顿房价数据可以看到完整的波士顿房价数据。

我们从dtype的表述中,可以看出,波士顿数据集有506条数据,每条数据有13个属性,如下图:

下表是我们整理后的波士顿房价数据中的2条:

CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT target
0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 396.90 4.98 24.0
0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 396.90 9.14 21.6

上表中每一列表示一个房屋的属性,这些属性决定了房价:

  • CRIM :城镇人均犯罪率
  • ZN :住在用地的比例
  • INDUS: 城镇非零售商业面积的比例
  • CHAS : 是否在查尔斯河边,在为1,不在为0。靠,1992年就知道江景房了。

好了,其他列的数据,大家可以自己在描述文件里面看看英文解释,这里就不列出了。

7、乳腺癌数据集

人工智能正在慢慢进入医疗行业,对人类的健康发挥着重要的作用。不知道,学习本课程的你,未来是否有机会进入这个领域,但是一旦进入,我觉得这是一件太有意义的事情。

1、人工智能也许能在医学上突破

世界上很多人都受着疾病的折磨,疾病,癌症的种类繁多。就乳腺癌就多很多种,根据每一个人的体质,同一种癌症在每个人身上是反应不一样的。对于同一种癌症,一种药对A有用,但是对B没有用。同一种药第一年对A有用,但是第二年对A就没有用了。

病毒细胞是在不断进化的,所以没有一种万能药,可以治疗所有的疾病,哪怕同一种疾病也很难。就像感冒药,都有几百中。现在唯一解决疾病的方法,就是针对不同人研制不同的药,每一个人能够吃到最适合他的药,只有这样才能真正做到对症下药。

显然,为每一个人研发一种药是非常昂贵的,一般需要2亿美元才能成功研制一种治疗癌症的新药,这个费用只有世界上最富有的人才能付得起。但是如果使用人工智能,大数据的方法,收集世界上所有人的各种身体指标,通过大量的临床数据,实验新药,计算机可以帮助节省人工成本,据预测,未来平均到世界上的每个癌症患者,只需要4万元,既可实验出适合他本人的新药,从而战胜疾病。

是不是很激动,我们期待那天的到来,在奔向胜利的道路上,可能会有你的努力,加油吧,同学。

2、乳腺癌数据集介绍

Scikit learn工具包还包含了一个乳腺癌数据集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: utf8 -*-
 
# 本段代码加载乳腺癌数据
 
import numpy as np
# 导入乳腺癌数据集
from sklearn.datasets import load_breast_cancer
 
# 设置打印完整的数组
np.set_printoptions(threshold='nan')
 
# 加载乳腺癌数据集
breast = load_breast_cancer()
 
print breast
 
# 写入文件中,在你的电脑上运行,请改到相应的路径
f = open(r'D:\ai\breast.txt','w')
# 将breast乳腺癌数据写入文件f中
print >> f,breast
# 关闭文件流,保存文件
f.close()

大家可以在这里下载乳腺癌数据集

0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 396.90 4.98 24.0 1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 396.90 9.14 21.6 2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 392.83 4.03 34.7 3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 18.7 394.63 2.94 33.4 4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 18.7 396.90 5.33 36.2