-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1938 lines (808 loc) · 126 KB
/
index.html
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html class="theme-next gemini use-motion" lang="zh-Hans">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta name="theme-color" content="#222">
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css" />
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.4">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon.ico?v=5.1.4">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon.ico?v=5.1.4">
<link rel="mask-icon" href="/images/logo.svg?v=5.1.4" color="#222">
<meta name="keywords" content="Hexo, NexT" />
<meta property="og:type" content="website">
<meta property="og:title" content="Gao">
<meta property="og:url" content="http://yoursite.com/index.html">
<meta property="og:site_name" content="Gao">
<meta property="og:locale" content="zh-Hans">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Gao">
<script type="text/javascript" id="hexo.configurations">
var NexT = window.NexT || {};
var CONFIG = {
root: '/',
scheme: 'Gemini',
version: '5.1.4',
sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
fancybox: true,
tabs: true,
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
duoshuo: {
userId: '0',
author: '博主'
},
algolia: {
applicationID: '',
apiKey: '',
indexName: '',
hits: {"per_page":10},
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
}
};
</script>
<link rel="canonical" href="http://yoursite.com/"/>
<title>Gao</title>
</head>
<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
<div class="container sidebar-position-left
page-home">
<div class="headband"></div>
<a href="https://github.com/Antabot" class="github-corner" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
<header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-wrapper">
<div class="site-meta ">
<div class="custom-logo-site-title">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<span class="site-title">Gao</span>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<p class="site-subtitle"></p>
</div>
<div class="site-nav-toggle">
<button>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section">
<i class="menu-item-icon fa fa-fw fa-home"></i> <br />
首页
</a>
</li>
<li class="menu-item menu-item-about">
<a href="/about/" rel="section">
<i class="menu-item-icon fa fa-fw fa-user"></i> <br />
关于
</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section">
<i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
标签
</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section">
<i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
归档
</a>
</li>
</ul>
</nav>
</div>
</header>
<main id="main" class="main">
<div class="main-inner">
<div class="content-wrap">
<div id="content" class="content">
<section id="posts" class="posts-expand">
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/08/12/ML-2/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Loven Gao">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/Avatar1.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Gao">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2018/08/12/ML-2/" itemprop="url">机器学习白学笔记(二):数据预处理</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2018-08-12T17:02:18+08:00">
2018-08-12
</time>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="机器学习初步:数据预处理"><a href="#机器学习初步:数据预处理" class="headerlink" title="机器学习初步:数据预处理"></a>机器学习初步:数据预处理</h1><p>机器学习离不开大量的数据。在对这些数据进行分析前,我们先学习一下在 Python 中如何导入数据并对它进行预处理。</p>
<h2 id="导入需要的库"><a href="#导入需要的库" class="headerlink" title="导入需要的库"></a>导入需要的库</h2><p>利用 Python 进行数据分析所必须的库有两个。</p>
<p><strong>NumPy</strong> 包含了各种数学计算函数。</p>
<p><strong>Pandas</strong> 用于导入和管理数据集。</p>
<p>通常我们使用以下形式导入这两个库:</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> pandas <span class="keyword">as</span> pd</span><br></pre></td></tr></table></figure>
<h2 id="导入数据集"><a href="#导入数据集" class="headerlink" title="导入数据集"></a>导入数据集</h2><p>数据集通常是 .csv 格式。CSV 以纯文本形式保存表格数据,文件的每一行是一条数据记录。我们使用 Pandas 的 read_csv 方法读取本地 .csv 文件作为一个数据帧(dataframe),然后从数据帧中制作自变量和因变量的矩阵和向量。 </p>
<p>示例数据地址:<a href="https://github.com/Avik-Jain/100-Days-Of-ML-Code/tree/master/datasets" target="_blank" rel="noopener">GitHub - Avik-Jain/100-Days-Of-ML-Code/datasets</a></p>
<p>可将数据下载到本地,放在 Jupyter Notebook 工作目录下,或通过 upload 导入。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">dataset = pd.read_csv(Data.csv)</span><br><span class="line"><span class="comment"># X 获取所有行从第0列到倒数第1列的数据(从0起算)</span></span><br><span class="line">X = dataset.iloc[ : ,:<span class="number">-1</span>].values</span><br><span class="line"><span class="comment"># Y 获取所有行第3列的数据</span></span><br><span class="line">Y = dataset.iloc[ : , <span class="number">3</span>].values</span><br></pre></td></tr></table></figure>
<p>iloc 的作用是通过行列号来获取数据,而 loc 则是通过标签索引数据。</p>
<p>导入后,dataset 的数据如下</p>
<p><img src="https://i.imgur.com/SqOX62a.png" alt=""></p>
<h2 id="处理丢失数据"><a href="#处理丢失数据" class="headerlink" title="处理丢失数据"></a>处理丢失数据</h2><p>我们得到的数据可能由于各种原因存在缺失。为了不降低机器学习模型的性能,我们可以通过一些方法处理这些数据,比如使用整列数据的平均值或中位数来替换丢失的数据。</p>
<p>可以使用 sklearn.preprocessing 库中的 Imputer 类来完成这项任务。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> sklearn.preprocessing <span class="keyword">import</span> Imputer</span><br><span class="line">imputer = Imputer(missing_values = <span class="string">"NaN"</span>, strategy = <span class="string">"mean"</span>, axis = <span class="number">0</span>)</span><br><span class="line"><span class="comment"># 训练模型,拟合出作为替换值的均值</span></span><br><span class="line">imputer = imputer.fit(X[ : , <span class="number">1</span>:<span class="number">3</span>])</span><br><span class="line"><span class="comment"># 处理需要补全的数据</span></span><br><span class="line">X[ : , <span class="number">1</span>:<span class="number">3</span>] = imputer.transform(X[ : , <span class="number">1</span>:<span class="number">3</span>])</span><br></pre></td></tr></table></figure>
<p>Imputer 参数解释:</p>
<p>missing_values:缺失值,可以为整数或 NaN ,默认为 NaN</p>
<p>strategy:替换策略,默认用均值 ‘mean’ 替换,还可以选择中位数 ‘median’ 或众数 ‘most_frequent’</p>
<p>axis:指定轴数,默认 axis = 0 代表列,axis = 1 代表行</p>
<h2 id="解析分类数据"><a href="#解析分类数据" class="headerlink" title="解析分类数据"></a>解析分类数据</h2><p>分类数据是具有标签值而不是数值的变量,取值范围通常固定(类似枚举值),不能用于模型的数学计算,需要解析成数字。为实现这个功能,我们从 sklearn.preprocessing 库中导入 LabelEnconder 类。</p>
<p>经过编码之后的变量称为<strong>虚拟变量</strong>或<strong>哑变量(Dummy Variable)</strong></p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> sklearn.preprocessing <span class="keyword">import</span> LabelEncoder, OneHotEncoder</span><br><span class="line">labelencoder_X = LabelEncoder()</span><br><span class="line"><span class="comment"># 对 X 中的标签数据编码</span></span><br><span class="line">X[ : , <span class="number">0</span>] = labelencoder_X.fit_transform(X[ : , <span class="number">0</span>])</span><br><span class="line"><span class="comment"># 使用 onehotencoder 对经过标签编码的第0行数据进行独热编码</span></span><br><span class="line">onehotencoder = OneHotEncoder(categorical_features = [<span class="number">0</span>])</span><br><span class="line">X = onehotencoder.fit_transform(X).toarray()</span><br><span class="line"><span class="comment"># 对 Y 中的标签数据编码</span></span><br><span class="line">labelencoder_Y = LabelEncoder()</span><br><span class="line">Y = labelencoder_Y.fit_transform(Y)</span><br></pre></td></tr></table></figure>
<p>关于独热编码,参考<a href="https://www.cnblogs.com/king-lps/p/7846414.html" target="_blank" rel="noopener">博客园 - OneHotEncoder独热编码和 LabelEncoder标签编码</a></p>
<h2 id="分割数据集"><a href="#分割数据集" class="headerlink" title="分割数据集"></a>分割数据集</h2><p>我们需要把数据集拆分成用来训练模型的<strong>训练集</strong>和用来验证模型的<strong>测试集</strong>。两者的比例一般是 80:20。这里需要导入 sklearn.crossvalidation 库中的 train_test_split()方法。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> sklearn.cross_validation <span class="keyword">import</span> train_test_split</span><br><span class="line"><span class="comment"># 分割数据集</span></span><br><span class="line">X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = <span class="number">0.2</span>, random_state = <span class="number">0</span>)</span><br></pre></td></tr></table></figure>
<h2 id="特征缩放"><a href="#特征缩放" class="headerlink" title="特征缩放"></a>特征缩放</h2><p>大部分机器学习算法在计算中使用数据点之间的欧氏距离,数据的某一特征值的量级在很大程度上决定了距离的大小。因此,应该把每个特征的取值限定在某一范围内,称为特征缩放。常用的方法有调节比例、标准化等。这里我们导入 sklearn.preprocessing 库的 StandardScalar 类。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> sklearn.preprocessing <span class="keyword">import</span> StandardScaler</span><br><span class="line">sc_X = StandardScaler()</span><br><span class="line">X_train = sc_X.fit_transform(X_train)</span><br><span class="line">X_test = sc_X.fit_transform(X_test)</span><br></pre></td></tr></table></figure>
<blockquote>
<p>作者:小高<br>更多精彩内容,欢迎访问:<a href="https://lovengao.com" target="_blank" rel="noopener">LovenGao.com</a>,电脑端食用效果更佳,骗个点击量,hhhh</p>
</blockquote>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</div>
</article>
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/08/11/ML-1/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Loven Gao">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/Avatar1.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Gao">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2018/08/11/ML-1/" itemprop="url">机器学习白学笔记(一):搭建 Python 环境</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2018-08-11T12:05:46+08:00">
2018-08-11
</time>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="100-Days-Of-ML-Code"><a href="#100-Days-Of-ML-Code" class="headerlink" title="100-Days-Of-ML-Code"></a>100-Days-Of-ML-Code</h1><p>最近 GitHub 上一个小哥的<strong>“一百天机器学习代码</strong>” repo 大火,于是某大佬就想搞一个群,召集一帮小伙伴,大家一起跟着进度坚持打卡一百天,相互督促相互进步,大佬也愿意自掏腰包给坚持到最后的小伙伴一些奖励。原本正在撸前端的我按捺不住内心的激动,急忙讨好大佬混进了群里,给自己挖了一个深坑。</p>
<p>偏偏这周单位工作特别多,原本计划晚上妥妥地挤出一到两小时搞这个,没想到每天都只能似懂非懂勉强腆着脸去打卡,唉。但是轻言放弃不是我的本性,周末了,终于有了空闲时间,得复盘总结一下,把漏掉的部分给补回来。</p>
<p>致谢贡献 repo 的小哥~目前 Star 已经 6600+ 了,内容绝对远超国内一些付费课程。欢迎访问:</p>
<p><a href="https://github.com/Avik-Jain/100-Days-Of-ML-Code" target="_blank" rel="noopener">GitHub - Avik-Jain/100-Days-Of-ML-Code</a></p>
<h1 id="环境搭建"><a href="#环境搭建" class="headerlink" title="环境搭建"></a>环境搭建</h1><p>众所周知,机器学习数据分析的首选语言是 Python,我们应该如何优雅地使用 Python 进行机器学习编程呢?这里首推使用 Anaconda + Jupyter Notebook 搭建开发环境。</p>
<h2 id="Anaconda"><a href="#Anaconda" class="headerlink" title="Anaconda"></a>Anaconda</h2><h3 id="Anaconda-是什么?"><a href="#Anaconda-是什么?" class="headerlink" title="Anaconda 是什么?"></a>Anaconda 是什么?</h3><blockquote>
<p>开发过程中,遇到不同的项目使用不同版本的库是不是很头疼?</p>
</blockquote>
<p>Conda 是一个使用 Python 编写的开源的包管理系统和环境管理系统,具有跨平台和管理多语言项目的能力,它允许用户轻松安装不同版本的软件以及各种编程语言所需要的库,用户可以在多种软件版本中切换。</p>
<p>Anaconda 可以看作是增值版的 Python,并使用 Conda 进行包管理。它附带了可进行大规模数据处理、预测分析和科学计算等的包,乃是进行数据分析的一大利器。</p>
<h3 id="如何安装-Anaconda"><a href="#如何安装-Anaconda" class="headerlink" title="如何安装 Anaconda"></a>如何安装 Anaconda</h3><p>官网下载地址:<a href="https://www.anaconda.com/download/" target="_blank" rel="noopener">Download Anaconda</a></p>
<p>按照自己的系统类型选择相应的安装包然后安装即可。Win10 用户安装时请右键选择以管理员身份运行。安装过程比较简单,一路点下去即可。</p>
<p>以 Windows 为例,安装完以后,运行 Anaconda 的终端——Anaconda Prompt。(Win10 右键管理员身份运行)</p>
<p><img src="https://i.imgur.com/COLRIlm.png" alt=""></p>
<p>在终端中输入 conda list,出现以下界面,则说明安装成功。</p>
<p><img src="https://i.imgur.com/O0IRx23.png" alt=""></p>
<p>之后更新所有的包,在终端中输入:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda upgrade --all</span><br></pre></td></tr></table></figure>
<h3 id="Anaconda-基础操作"><a href="#Anaconda-基础操作" class="headerlink" title="Anaconda 基础操作"></a>Anaconda 基础操作</h3><h2 id="安装包"><a href="#安装包" class="headerlink" title="安装包"></a>安装包</h2><p>在终端中使用如下命令安装包:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda install packge_name</span><br></pre></td></tr></table></figure>
<p>默认安装指定包的所有版本,也可以通过添加版本号来指定需要的版本。(如 conda install numpy=1.10)</p>
<h2 id="卸载包"><a href="#卸载包" class="headerlink" title="卸载包"></a>卸载包</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda remove packge_name</span><br></pre></td></tr></table></figure>
<h2 id="更新包"><a href="#更新包" class="headerlink" title="更新包"></a>更新包</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda update packge_name</span><br></pre></td></tr></table></figure>
<p>可以使用 conda update –all 来更新环境中所有的包。</p>
<h2 id="列出已经安装的包"><a href="#列出已经安装的包" class="headerlink" title="列出已经安装的包"></a>列出已经安装的包</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda list</span><br></pre></td></tr></table></figure>
<p>安装好 Anaconda 后,就可以安装神器 Jupyter Notebook 啦!</p>
<h2 id="Jupyter-Notebook"><a href="#Jupyter-Notebook" class="headerlink" title="Jupyter Notebook"></a>Jupyter Notebook</h2><h3 id="Jupyter-Notebook-是什么?"><a href="#Jupyter-Notebook-是什么?" class="headerlink" title="Jupyter Notebook 是什么?"></a>Jupyter Notebook 是什么?</h3><p>Jupyter Project 是 IPython 的一个衍生项目,以 Julia,Python 和 R 作为核心编程语言,支持几十种语言的执行环境(内核)。</p>
<p>Jupyter Notebook 是 Jupyter 的 Web 交互式计算环境,Jupyter Notebook 文档(.ipynb)实际上是一个 JSON 文档,可以包含代码、文本(Markdown)、数学公式、图形和多媒体。</p>
<p>使用 Jupyter Notebook,可以让你的文档和代码相辅相成,它的优秀的可视化能力,使得数据分析工程师能够专注于分析过程,而不必在可视化方面下太多心思。</p>
<h3 id="安装-Jupyter-Notebook"><a href="#安装-Jupyter-Notebook" class="headerlink" title="安装 Jupyter Notebook"></a>安装 Jupyter Notebook</h3><p>在 Anaconda Prompt 终端中输入:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda install jupyter notebook</span><br></pre></td></tr></table></figure>
<p>即可。Anaconda 会自动下载相关包与依赖。</p>
<h3 id="使用-Jupyter-Notebook"><a href="#使用-Jupyter-Notebook" class="headerlink" title="使用 Jupyter Notebook"></a>使用 Jupyter Notebook</h3><p>可以直接在开始菜单中启动 Jupyter Notebook,这样会在默认的工作目录下新建 .ipynb 文件。如果想要在某一指定文件夹启动,则需要先在 Anaconda 终端中进入该文件夹,然后执行</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">jupyter notebook</span><br></pre></td></tr></table></figure>
<p>命令。接下来 Jupyter Notebook 服务器会被启动,默认的端口是 8888。浏览器会自动打开 <a href="http://localhost:8888/tree" target="_blank" rel="noopener">http://localhost:8888/tree</a> 页面。</p>
<p><img src="https://i.imgur.com/qF4BkN5.png" alt=""></p>
<p>我们可以按照需要建立子文件夹,然后点击右侧的 New,选择相应的环境(这里我们选择 Python [default])</p>
<p><img src="https://i.imgur.com/oCm7nOP.png" alt=""></p>
<p>新的 Notebook 就被创建好啦!让我们在代码块中写入第一行代码:</p>
<p><img src="https://i.imgur.com/XpWBhPr.png" alt=""></p>
<p>按 Ctrl + Enter 快捷键,即可执行该代码块。左侧的 In [1] 指该代码块的执行顺序。我们可以把代码片段放在不同的代码块中,需要哪块运行哪块,非常有利于代码的调试。</p>
<p>可以使用快捷键来提高编码效率:<a href="https://blog.csdn.net/lawme/article/details/51034543" target="_blank" rel="noopener">CSDN - Jupyter Notebook 的快捷键</a></p>
<p>同时, 可以在 Anaconda 终端中安装代码自动补全包</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda install pyreadline</span><br></pre></td></tr></table></figure>
<p>嗯,到这里,进行数据分析所需的 Python 环境就搭建好啦!接下来,让我们一同开始机器学习之旅。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</div>
</article>
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/08/10/Java-Note-3/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Loven Gao">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/Avatar1.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Gao">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2018/08/10/Java-Note-3/" itemprop="url">JavaEE 从入门到放弃(三):JSP 让世界更美好?</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2018-08-10T21:45:27+08:00">
2018-08-10
</time>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="Servlet-与-JSP"><a href="#Servlet-与-JSP" class="headerlink" title="Servlet 与 JSP"></a>Servlet 与 JSP</h1><p> Servlet 通常使用字符串拼接的方式动态生成 html,大量的 html 内容使代码难以维护、可读性差。于是大佬们想,既然能在 Java 中写 html,能不能在 html 中写 Java 呢?</p>
<p>JSP(JavaServer Pages) 诞生了。</p>
<p>JSP 是基于 Servlet API 的,所以拥有 Servlet 拥有的一些列好处,可以实现各种功能,同时可以很方便地编写或修改网页,不用面对大量的 println 语句,但是,什么事情都要把握一个度,在 html 中混入大量、复杂的业务逻辑也是不可取的。</p>
<p>一种双剑合璧、扬长避短的方法是把 Servlet 当成 Controller 层,用于处理浏览器请求,并调用核心业务逻辑(Model)。而 JSP 则用作 View 层,负责动态地把处理结果输出到 html 中去。</p>
<p>Model、View、Controller,没错,这就是我们所说的 MVC 模式啦!这里先不赘述,以后会有一篇文章专门介绍 MVC 。</p>
<h1 id="JSP-简单介绍"><a href="#JSP-简单介绍" class="headerlink" title="JSP 简单介绍"></a>JSP 简单介绍</h1><p>先动手来个实践。</p>
<p>本部分内容来自 <a href="http://how2j.cn/k/jsp/jsp-tutorials/530.html?p=50613" target="_blank" rel="noopener">How2J 的 JSP 教程</a></p>
<h2 id="test-jsp"><a href="#test-jsp" class="headerlink" title="test.jsp"></a>test.jsp</h2><p>在 web 目录下新建一个文件 test.jsp<br>(Tomcat 的 web 根目录为 /webapps/ROOT) </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><%@page contentType="text/html; charset=UTF-8"</span><br><span class="line"> pageEncoding="UTF-8" import="java.util.*"%></span><br><span class="line"> </span><br><span class="line">hello,jsp</span><br><span class="line"> </span><br><span class="line"><br></span><br><span class="line"> </span><br><span class="line"><%=new Date().toLocaleString()%></span><br></pre></td></tr></table></figure>
<p>访问 localhost/test.jsp,可以看到运行结果</p>
<p><img src="https://i.imgur.com/u2pNEcf.png" alt=""></p>
<h2 id="代码分析"><a href="#代码分析" class="headerlink" title="代码分析"></a>代码分析</h2><h3 id="Page-指令"><a href="#Page-指令" class="headerlink" title="Page 指令"></a>Page 指令</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%></span><br></pre></td></tr></table></figure>
<p><%@page … %>是 JSP 的 Page 指令,为浏览器提供当前页面的使用说明,与 html 的头对应。等价的 XML 格式为<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><jsp:directive.page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"/></span><br></pre></td></tr></table></figure></p>
<h3 id="JSP-表达式"><a href="#JSP-表达式" class="headerlink" title="JSP 表达式"></a>JSP 表达式</h3><p>JSP 表达式的语法格式为:<%= 表达式 %> ,JSP表达式会先被转化为 String,然后插入到表达式出现的地方。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><%=new Date().toLocaleString()%></span><br></pre></td></tr></table></figure>
<p> 本行代码输出当前的时间。</p>
<p>表达式可以出现在文本行中,而不一定是 html 标签。可以使用任何符合 Java 语言规范的表达式。</p>
<h3 id="JSP-执行过程"><a href="#JSP-执行过程" class="headerlink" title="JSP 执行过程"></a>JSP 执行过程</h3><p>test.jsp 的执行过程为:</p>
<ol>
<li>test.jsp 被转译为 test_jsp.java(该类继承自 HttpJspBase,而 HttpJspBase 继承自 HttpServlet)</li>
<li>test_jsp.java 被编译成 hello_jsp.class</li>
<li>执行 hello_jsp.class,生成 html</li>
<li>通过 HTTP 协议把 html 响应返回给浏览器</li>
</ol>
<h2 id="JSP-页面元素"><a href="#JSP-页面元素" class="headerlink" title="JSP 页面元素"></a>JSP 页面元素</h2><p>除了上面提到的<strong>指令</strong>和<strong>表达式</strong>,JSP 还有以下几种页面元素:</p>
<h3 id="静态内容"><a href="#静态内容" class="headerlink" title="静态内容"></a>静态内容</h3><p>即 html/css/javascript 等内容</p>
<h3 id="Scriptlet"><a href="#Scriptlet" class="headerlink" title="Scriptlet"></a>Scriptlet</h3><p>在 <% %> 之间,可以写任何 Java 代码</p>
<h3 id="声明"><a href="#声明" class="headerlink" title="声明"></a>声明</h3><p>在 <% ! %> 之间可以声明字段或方法,但是不建议这么做。</p>
<h3 id="动作"><a href="#动作" class="headerlink" title="动作"></a>动作</h3><p><jsp:include page=”Filename”> 在 JSP 页面中包含另一个页面。</p>
<h3 id="注释"><a href="#注释" class="headerlink" title="注释"></a>注释</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><%-- jsp代码 --%></span><br></pre></td></tr></table></figure>
<h2 id="其它细节"><a href="#其它细节" class="headerlink" title="其它细节"></a>其它细节</h2><p>其它细节方面的内容感兴趣的小伙伴可以自行去了解,还是那句话,编程最重要的是动手去做,不撸个几百万行代码怎么好意思说自己室程序员呢?</p>
<p>给大家推荐两个教程,都是很良心的,可以在学习 Java 的过程中时常参考:</p>
<p>【1】 <a href="http://how2j.cn/k/jsp/jsp-tutorials/530.html?p=50613" target="_blank" rel="noopener">前面提到的:How2J 的 JSP 教程</a></p>
<p>【2】 <a href="http://www.runoob.com/jsp/jsp-tutorial.html" target="_blank" rel="noopener">菜鸟教程:JSP 教程</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</div>
</article>
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/07/28/Financial-1/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Loven Gao">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/Avatar1.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Gao">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2018/07/28/Financial-1/" itemprop="url">谈谈理财(一):为什么要理财</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2018-07-28T14:23:33+08:00">
2018-07-28
</time>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<p>工作一年,身边踏上生活“<strong>正轨</strong>”的人越来越多。</p>
<p>办公室里、饭桌上,买房、买车、结婚、生子、子女教育,类似话题经久不衰,而这些话题,通常都会归结到<strong>“花地多,挣地少”</strong>这个结论上。有一段时间,我也热烈地参与到这种讨论之中,不幸的是,我发现其他人要么因为早生几年在房价上涨之前就购置了房子,要么家底儿比我厚实咬咬牙跺跺脚就可以交首付了,而我离这个当时看起来是首要的目标相差甚远。</p>
<p>这时我面临两个选择。</p>
<p>一是告诉自己反正年轻,也不着急买房,以后再说呗,<strong>说不定以后房价降了呢!</strong></p>
<p>二是我一定要规划好这件事,想出合理的解决办法,<strong>问题现在不着手解决,以后压力会更大。</strong></p>
<blockquote>
<p>每当我走到人生的十字路口,我总是知道哪条路是对的。<br>毫无例外,我知道,但我就是不走。<br>为什么?因为太他妈的苦逼了。</p>
</blockquote>
<p>幸运的是,我不是选择逃避的人。</p>
<p>我意识到了自己将会面临的问题。不久的将来,我踏上<strong>“正轨”</strong>,将会面临沉重的债务,我不得不努力工作,承受身体与精神的压力并节俭一切可能的花销,我将不能够做出任何具有风险的选择,而更大的风险终将会以各种方式爆发。我的人生将日复一日,毫无进展,我将逐渐被时代抛弃。</p>
<p>许多人面临着和我类似的困境,他们称之为<strong>中年危机</strong>。而作为独生子女,我们的中年危机或许将来得更加猛烈。</p>
<p>我曾经跟我爸说,我要努力挣钱,只有我有钱了,才能让我们家过上幸福的生活。我爸教育我,不能天天想着挣钱,把工作干好,想想怎么提升自己。我妈也常说,钱不是最重要的,不能为了挣钱什么都不要了。</p>
<p>我当然知道钱不重要。我不是一个守财奴,我挣钱是为了给我和我爱的人带来更好的生活。我也知道不能为了钱什么都不要,家人、身体都比钱重要,或者说钱跟这些都没有可比性。我不认同的是,<strong>许多人明明需要挣钱,却并不思考如何挣钱,只一遍遍地跟自己说,钱不重要。</strong>何况大多数时候,钱与我们的健康,与我们的幸福息息相关。</p>
<blockquote>
<p>假药贩子张长林说,<strong>这世界上只有一种病,穷病。</strong></p>
</blockquote>
<p>渐渐地人们开始意识到,有时候忙碌其实是懒惰。许多努力工作的人,从来没有动脑子想过自己应该怎样通过更好地方式挣钱。我无意指责这种做法,只是不喜欢看到人们把这种做法放在道德的制高点上。</p>
<p>我想很多人都有一个共同目标——<strong>财务自由</strong>。</p>
<p>所谓财务自由,就是你的被动收入等于或超过你的日常开支。达到财务自由后,你便可以去做你想做的事,而不必受制于工作。这个目标不那么容易实现,但只要你尽快着手去实现,你会发现它也许比通过努力工作挣钱还清房贷、培养子女、照顾老人要简单。</p>
<p>当你不再为钱的事情发愁,你就可以专注于更加有意义的事情,过得更加快乐。即使你的乐趣就在于挣钱,你也会发现自己的钱挣地越来越容易、越来越开心。</p>
<p>人们常说<strong>富人有富人的烦恼</strong>,但整体来说,富人还是过得比穷人快乐。你觉得富人都是无知的,而实际上他们有更多的时间接触到更好的知识。古希腊的公民有田地有奴隶,几乎没有衣食住行上的担忧,所以他们才有时间去思索,才有如此瑰丽的精神财富流传于世。尤其是哲学这种终极的智慧,往往只有抛开其它一切生存上的忧虑才能一窥其美妙。</p>
<p>人没有三六九等,但作为“穷人”的我们,不能逃避,不能偷懒,要想办法去变成“富人”,不是吗?</p>
<p><strong>钱不是最重要的,但钱可以解决许多最重要的问题。钱不好挣,但也没有人们想的那么难挣。</strong></p>
<p>作为一个工薪阶层,我该以什么方式去挣钱呢?</p>
<p>死命加班似乎并不是一个好方法。对于我来说,业余时间要比工作时间更加珍贵,我会用业余时间去学习,去锻炼身体,我心里的预期是,除非能给我工作三倍以上的报酬,我才会<strong>愿意</strong>去加班。(强调愿意,因为事实是我根本没有加班费,并时常被强制要求加班)</p>
<p>学习是一个好方法。对于一个人来说,最重要的<strong>资本</strong>是自己的大脑。不断提高自己的认知,丰富自己的知识,是让自己创造更多财富的先决条件。所有人都认可知识水平高的人能够在工作中拿到更丰厚的报酬,但工作只是一方面。正确的认识是,<strong>通过学习,我们可以发现更多挣钱的机会,掌握更多挣钱的技能。</strong>我们应该学习各种各样的知识,不要太局限于某一方面,这点大多数人想必也认同,但是经过这么多年学校教育的我们,漏掉了<strong>当代对人生最重要的课程之一——理财。</strong></p>
<blockquote>
<p>学校开发我们的智商,也越来越注重情商,但它仍在对<strong>“财商”</strong>教育视而不见。</p>
</blockquote>
<p>诚然,对于目前的我来说,通过学习技能提高收入是当务之急,但我见过许多收入在我看来已经足够高的人仍挣扎在财务困境的泥潭之中。也许真正致富的道路是创业,可就算我们的要求不那么高,只想要小小的富足,也必须培养自己的“财商”,才能把财富真正地积攒下来。</p>
<p>简单地说,<strong>理财就是让钱生钱。</strong> </p>
<p>在我看来,理财主要有这么几个方面:</p>
<p><strong>一、存钱!存钱!存钱!</strong></p>
<p>我想大多数年轻人都和我一样有过月光的经历,甚至工作许久了仍然处于月光的状态。 当学生紧巴了这么多年,终于有了一份属于自己的工资,终于可以浪了,看上什么就买什么,这种感觉棒极了!</p>
<p>棒极了吗?No,当你结束短暂而无意义的欢愉,你会陷入空虚之中。晚一步停止月光,就会让你晚一步实现财务自由。</p>
<p>你要记住,<strong>年轻的时候存钱比年纪大了存钱容易地多</strong>,一是没有过多的必须生活开销,二是你的工资增长很可能跑不过通货膨胀。</p>
<p>开始存钱,是理财的第一步。必须要先存钱,再消费,给自己的消费画上一根红线。</p>
<p><strong>二、投资</strong></p>
<p><strong>存钱是理财的第一步,但存钱并不能让钱生钱</strong>。我们需要通过我们称之为“投资”的手段,才能让钱为你工作。有的人说,我存在银行里,不是有利息么?这是不是投资?好吧,非要承认它是投资也不是不行,但我相信越来越多的人明白那点利息简直是笑话,钱放在银行里,就是放任其贬值。</p>
<p>投资的形式有很多,债券、保险、基金、股票、实业等等。一般来讲,<strong>收益越高的产品,对应的风险也越高。</strong>大多数人没有合理地进行投资的主要原因恐怕就在于,<strong>害怕亏钱</strong>。</p>
<p>当然,我们要记住,<strong>我们每个人最可靠,收益最大的资产是我们的大脑。</strong></p>
<p>对于普通人来说,基金、股票等的门槛并不算高,操作也并不算复杂,但很多人就因为害怕亏钱而从来不去接触这件事情,甚至把它们妖魔化,衍生出“股票都是骗人的”等言论。的确,股市中赚钱的是少数人,但赔钱的人,<strong>大多是在该进入市场的时候不敢进入,等到该撤出的时候贪婪战胜恐惧,看着别人的收益眼红,脑子一热杀进去的人</strong>。这反应出了大众对投资知识的匮乏,这个锅不应该股市来背。(我大A股心里并没有波澜,甚至还有一丝想笑)</p>
<p>那么投资究竟能挣多少钱呢?</p>
<p>假如一个人从22岁开始,每个月投资1000元,年化收益8%,那么到他60岁的时候,他的投资收益将会高达264万元。</p>
<p>假如你有10万元,从现在开始投资,年化收益10%,50年后,你将拥有1174万。</p>
<p>这就是被爱因斯坦称为“世界第八大奇迹”的<strong>复利</strong>。</p>
<p>仍以上面的那个人举例,如果他从27岁开始投资,他到60岁时只能拿到175万元。如果从32岁开始,则只能拿到114万。也就是说,在同样的收益率下,晚5年进行投资,你的收益会比别人少51%!</p>
<p>所以,如果你决定要投资,那就尽快开始吧!年轻的时候,一些风险还是承受得了的,何况我们可能也没多少钱去损失。等到日后钱多了起来,你就会发现过去的损失都是为今后的收益作铺垫。</p>
<p><strong>三、资产配置</strong></p>
<p>你开始存钱了,那应该存多少呢?为了尽快实现财务自由,应该把存的钱全部用于投资吗?这个事情我想是因人而异的。如果你目前面临的风险较小,在一段时间内没有其它需求,就可以多存点,然后把这些钱全部投进去,但对于大部分人来说,要留一部钱作其它的打算。</p>
<p>一般来讲,除开日常生活必须的费用,我们需要配置</p>
<p><strong>一部分应急资金</strong>,保持自己在一些突发时刻有足够的现金。</p>
<p><strong>一部分消费的储备资金</strong>,比如为旅行、为购买电脑等物品的储备,或者是留出来让自己随便买买买的钱。</p>
<p><strong>一部分谋求回报的投资资金</strong>,比如股票、基金、房地产等。</p>
<p><strong>一部分投资在保险上的资金</strong>,很多人忽视保险的重要性,但保险是一个杠杆,让你用日常时期少量的钱换取关键时刻大量的保障,是绝对有必要的。但保险不能瞎买,一般人购买适当额度的<strong>重疾、医疗</strong>等必备保险就足够了。</p>
<p>上述理财的三个方面,存钱最简单,投资最难。投资是我们必须要掌握的技能,也是我们必须认真去学习的技能,它没有那么难,但也决不是一天两天就能学会的,既不能畏手畏脚,也不能盲目跟风。</p>
<p>回到文初的问题,一段时间的理财学习,让我对买房这个问题产生了新的看法。我不希望过早地背上负债,在目前政府严格调控的背景下,房子的投资属性在降低,所以在结婚之前不会考虑买房的问题。而经过3~5年的投资积累,在我有购房刚需的时候,是可以承担这笔支出的。如果到时候投资带来的收益明显高于房价的涨幅,我还会继续推迟买房。我并不为这件事情过分忧虑,因为我知道我正在以比别人更快更好的方式解决这个问题。</p>
<p>多说一句,房子,租的出去、卖的出去的,是你的<strong>资产</strong>,它为你挣钱,而自住的、卖不出去的,是你的<strong>负债</strong>,即使没有房贷要还,你也要为它的维护花上不少费用。</p>
<p>当然,<strong>有刚需</strong>的小伙伴有能力还是早点上车,我只是觉得现在不适合炒房哈!</p>
<p>如果你想要给自己和家人创造更好的生活,就开始试着理财吧,我相信学习理财会给一个人带来质的提升,理财的智慧可以用到人生的方方面面。等实现财务自由的那天,记得来感谢我哟~</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</div>
</article>
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/07/24/Java-Note-2/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Loven Gao">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/Avatar1.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Gao">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2018/07/24/Java-Note-2/" itemprop="url">JavaEE从入门到放弃(二):Servlet</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2018-07-24T21:42:24+08:00">
2018-07-24
</time>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="Servlet-简介"><a href="#Servlet-简介" class="headerlink" title="Servlet 简介"></a>Servlet 简介</h1><h2 id="如何理解-Servlet"><a href="#如何理解-Servlet" class="headerlink" title="如何理解 Servlet"></a>如何理解 Servlet</h2><ul>
<li><strong>Servlet = Server + Applet(Applet,小程序)</strong></li>
<li>Servlet是运行在 Web 服务器或应用服务器上的 <strong>Java “小”程序</strong>。</li>
<li>使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,即<strong>与用户交互</strong>,还可以动态创建网页。也就是说,它几乎可以完成网站的<strong>所有功能</strong>。</li>
<li>广义的 Servlet 指任何实现了 Servlet 接口的 Java 程序。</li>
<li>Servlet 是学习 JSP 的基础。</li>
<li><p>Servlet 在 网络中所处的位置如下 :</p>
<p> <img src="https://i.imgur.com/82c7bsu.png" alt="Servlet层次"></p>
</li>
</ul>
<h2 id="Servlet-的生命周期"><a href="#Servlet-的生命周期" class="headerlink" title="Servlet 的生命周期"></a>Servlet 的生命周期</h2><ol>
<li>当 Servlet 第一次被调用的时候,其实例会被装在内存中。这个过程只会进行一次。</li>
<li>Servlet 的 service 函数将被调用。</li>
<li>在之后的访问中,service 函数直接被调用。</li>
<li>当 web 应用 reload 或者服务器被关闭时,Servlet 的实例被销毁。</li>
</ol>
<h1 id="实战:开发-HelloServlet-程序"><a href="#实战:开发-HelloServlet-程序" class="headerlink" title="实战:开发 HelloServlet 程序"></a>实战:开发 HelloServlet 程序</h1><p>Servlet 是 Web 应用的一部分,需要部署在服务器中。</p>
<p>这里,我们使用 Eclipse 的 JavaEE 版本结合 Tomcat 服务器进行开发。</p>
<p>部署 Tomcat 的办法请参考:<a href="http://how2j.cn/k/tomcat/tomcat-deploy/1143.html" target="_blank" rel="noopener">在 Tomcat 中部署JAVA WEB应用</a></p>
<p>下列内容参考自 <a href="http://how2j.cn/" target="_blank" rel="noopener">How2J.cn</a>,这个网站为我学习 Java 提供了很大帮助,有学习的各个阶段所需的实战小练习,感谢站长!</p>
<blockquote>
<p>Eclipse 等 IDE 可以很方便地创建使用 Servlet 的 Web 程序,但对于初学者来说,建议先通过手动配置加深理解。</p>
</blockquote>
<h2 id="创建普通-Java-项目"><a href="#创建普通-Java-项目" class="headerlink" title="创建普通 Java 项目"></a>创建普通 Java 项目</h2><p>打开 Eclipse ,File->New->Java Project,创建项目 MyServlet</p>
<p><img src="https://i.imgur.com/Sdrt4uo.png" alt="创建java项目"></p>
<h2 id="导入必须的servlet-api-jar包"><a href="#导入必须的servlet-api-jar包" class="headerlink" title="导入必须的servlet-api.jar包"></a>导入必须的servlet-api.jar包</h2><p>开发 Servlet 需要用到 servlet-api.jar 这个包里的相关类。</p>
<p>servlet-api.jar 包位于 \tomcat\lib\servlet-api.jar<br>(我的路径为 D:\apache-tomcat-9.0.10\lib\servlet-api.jar)</p>
<p>导入办法:</p>
<p>右键点击项目 -> Properties -> Java Build Path ->Libraries -> Add External JARs,按上面的路径导入 jar 包,然后 Apply。</p>
<p><img src="https://i.imgur.com/ZW3r5zy.png" alt="添加jar"></p>