假設(shè)x、x0∈RN,以x0為中心,x到x0的徑向距離為半徑所形成的‖x-x0‖構(gòu)成的函數(shù)系滿足k(x)=O。‖x-x0‖稱為徑向基函數(shù)。
創(chuàng)新互聯(lián)建站專注于伊通網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供伊通營(yíng)銷型網(wǎng)站建設(shè),伊通網(wǎng)站制作、伊通網(wǎng)頁設(shè)計(jì)、伊通網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造伊通網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供伊通網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
考慮徑向基函數(shù)插值在一些不同領(lǐng)域的來源.
最早可能是Krige ,他在1951 年把礦藏的沉積看成是一個(gè)各向同性的穩(wěn)定的隨機(jī)函數(shù)的實(shí)現(xiàn). 從而導(dǎo)出了廣泛應(yīng)用于礦藏分析的Kriging 方法. 在這方面的進(jìn)一步深入的理論工作主要是由Mathron 完成的.
1971 年Hardy 用徑向基函數(shù)Multi-Quadric來處理飛機(jī)外形設(shè)計(jì)曲面擬合問題, 取得了非常好的效果.
1975 年Duchon 從樣條彎曲能最小的理論出發(fā)導(dǎo)出了多元問題的薄板樣條. 這些從不同領(lǐng)域?qū)С龅姆椒? 事實(shí)上都是徑向基函數(shù)的插值方法,
他們所用的徑向基函數(shù)有:
1)Kriging 方法的Gauss 分布函數(shù)
2)Hardy 的Multi2Quadric 函數(shù)
3)Duchon 的薄板樣條
kde(kernel density estimation)是核密度估計(jì)。核的作用是根據(jù)離散采樣,估計(jì)連續(xù)密度分布。
如果原始采樣是《陰陽師》里的式神,那么kernel(核函數(shù))就相當(dāng)于御魂。
假設(shè)現(xiàn)在有一系列離散變量X = [4, 5, 5, 6, 12, 14, 15, 15, 16, 17],可見5和15的概率密度應(yīng)該要高一些,但具體有多高呢?有沒有三四層樓那么高,有沒有華萊士高?如果要估計(jì)的是沒有出現(xiàn)過的3呢?這就要自己判斷了。
核函數(shù)就是給空間的每個(gè)離散點(diǎn)都套上一個(gè)連續(xù)分布。最簡(jiǎn)單的核函數(shù)是Parzen窗,類似一個(gè)方波:
這時(shí)候單個(gè)離散點(diǎn)就可以變成區(qū)間,空間或者高維空間下的超立方,實(shí)質(zhì)上是進(jìn)行了升維。
設(shè)h=4,則3的概率密度為:
(只有4對(duì)應(yīng)的核函數(shù)為1,其他皆為0)
kernel是非負(fù)實(shí)值對(duì)稱可積函數(shù),表示為K,且一本滿足:
這樣才能保證cdf仍為1。
實(shí)際上應(yīng)用最多的是高斯核函數(shù)(Gaussian Kernel),也就是標(biāo)準(zhǔn)正態(tài)分布。所謂核密度估計(jì)就是把所有離散點(diǎn)的核函數(shù)加起來,得到整體的概率密度分布。核密度估計(jì)在很多機(jī)器學(xué)習(xí)算法中都有應(yīng)用,比如K近鄰、K平均等。
在支持向量機(jī)里,也有“核”的概念,同樣也是給數(shù)據(jù)升維,最常用的還是高斯核函數(shù),也叫徑向基函數(shù)(Radial Basis Funtion)。
seaborn.kdeplot內(nèi)置了多種kerne,總有一款適合你。
1、學(xué)習(xí)并掌握一些數(shù)學(xué)知識(shí)
高等數(shù)學(xué)是基礎(chǔ)中的基礎(chǔ),一切理工科都需要這個(gè)打底,數(shù)據(jù)挖掘、人工智能、模式識(shí)別此類跟數(shù)據(jù)打交道的又尤其需要多元微積分運(yùn)算基礎(chǔ)。
線性代數(shù)很重要,一般來說線性模型是你最先要考慮的模型,加上很可能要處理多維數(shù)據(jù),你需要用線性代數(shù)來簡(jiǎn)潔清晰的描述問題,為分析求解奠定基礎(chǔ)。
概率論、數(shù)理統(tǒng)計(jì)、隨機(jī)過程更是少不了,涉及數(shù)據(jù)的問題,不確定性幾乎是不可避免的,引入隨機(jī)變量順理成章,相關(guān)理論、方法、模型非常豐富。很多機(jī)器學(xué)習(xí)的算法都是建立在概率論和統(tǒng)計(jì)學(xué)的基礎(chǔ)上的,比如貝葉斯分類器、高斯隱馬爾可夫鏈。
再就是優(yōu)化理論與算法,除非你的問題是像二元一次方程求根那樣有現(xiàn)成的公式,否則你將不得不面對(duì)各種看起來無解但是要解的問題,優(yōu)化將是你的GPS為你指路。
以上這些知識(shí)打底,就可以開拔了,針對(duì)具體應(yīng)用再補(bǔ)充相關(guān)的知識(shí)與理論,比如說一些我覺得有幫助的是數(shù)值計(jì)算、圖論、拓?fù)?,更理論一點(diǎn)的還有實(shí)/復(fù)分析、測(cè)度論,偏工程類一點(diǎn)的還有信號(hào)處理、數(shù)據(jù)結(jié)構(gòu)。
2、掌握經(jīng)典機(jī)器學(xué)習(xí)理論和算法
如果有時(shí)間可以為自己建立一個(gè)機(jī)器學(xué)習(xí)的知識(shí)圖譜,并爭(zhēng)取掌握每一個(gè)經(jīng)典的機(jī)器學(xué)習(xí)理論和算法,我簡(jiǎn)單地總結(jié)如下:
1) 回歸算法:常見的回歸算法包括最小二乘法(OrdinaryLeast Square),邏輯回歸(Logistic Regression),逐步式回歸(Stepwise Regression),多元自適應(yīng)回歸樣條(MultivariateAdaptive Regression Splines)以及本地散點(diǎn)平滑估計(jì)(Locally Estimated Scatterplot Smoothing);
2) 基于實(shí)例的算法:常見的算法包括 k-Nearest Neighbor(KNN), 學(xué)習(xí)矢量量化(Learning Vector Quantization, LVQ),以及自組織映射算法(Self-Organizing Map , SOM);
3) 基于正則化方法:常見的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及彈性網(wǎng)絡(luò)(Elastic Net);
4) 決策樹學(xué)習(xí):常見的算法包括:分類及回歸樹(ClassificationAnd Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 隨機(jī)森林(Random Forest), 多元自適應(yīng)回歸樣條(MARS)以及梯度推進(jìn)機(jī)(Gradient Boosting Machine, GBM);
5) 基于貝葉斯方法:常見算法包括:樸素貝葉斯算法,平均單依賴估計(jì)(AveragedOne-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN);
6) 基于核的算法:常見的算法包括支持向量機(jī)(SupportVector Machine, SVM), 徑向基函數(shù)(Radial Basis Function ,RBF), 以及線性判別分析(Linear Discriminate Analysis ,LDA)等;
7) 聚類算法:常見的聚類算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM);
8) 基于關(guān)聯(lián)規(guī)則學(xué)習(xí):常見算法包括 Apriori算法和Eclat算法等;
9) 人工神經(jīng)網(wǎng)絡(luò):重要的人工神經(jīng)網(wǎng)絡(luò)算法包括:感知器神經(jīng)網(wǎng)絡(luò)(PerceptronNeural Network), 反向傳遞(Back Propagation), Hopfield網(wǎng)絡(luò),自組織映射(Self-OrganizingMap, SOM)。學(xué)習(xí)矢量量化(Learning Vector Quantization, LVQ);
10) 深度學(xué)習(xí):常見的深度學(xué)習(xí)算法包括:受限波爾茲曼機(jī)(RestrictedBoltzmann Machine, RBN), Deep Belief Networks(DBN),卷積網(wǎng)絡(luò)(Convolutional Network), 堆棧式自動(dòng)編碼器(Stacked Auto-encoders);
11) 降低維度的算法:常見的算法包括主成份分析(PrincipleComponent Analysis, PCA),偏最小二乘回歸(Partial Least Square Regression,PLS), Sammon映射,多維尺度(Multi-Dimensional Scaling, MDS), 投影追蹤(ProjectionPursuit)等;
12) 集成算法:常見的算法包括:Boosting, Bootstrapped Aggregation(Bagging),AdaBoost,堆疊泛化(Stacked Generalization, Blending),梯度推進(jìn)機(jī)(GradientBoosting Machine, GBM),隨機(jī)森林(Random Forest)。
3、掌握一種編程工具,比如Python
一方面Python是腳本語言,簡(jiǎn)便,拿個(gè)記事本就能寫,寫完拿控制臺(tái)就能跑;另外,Python非常高效,效率比java、r、matlab高。matlab雖然包也多,但是效率是這四個(gè)里面最低的。
4、了解行業(yè)最新動(dòng)態(tài)和研究成果,比如各大牛的經(jīng)典論文、博客、讀書筆記、微博微信等媒體資訊。
5、買一個(gè)GPU,找一個(gè)開源框架,自己多動(dòng)手訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),多動(dòng)手寫寫代碼,多做一些與人工智能相關(guān)的項(xiàng)目。
6、選擇自己感興趣或者工作相關(guān)的一個(gè)領(lǐng)域深入下去
人工智能有很多方向,比如NLP、語音識(shí)別、計(jì)算機(jī)視覺等等,生命有限,必須得選一個(gè)方向深入的鉆研下去,這樣才能成為人工智能領(lǐng)域的大牛,有所成就。
根據(jù)百度百科給的定義,人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的還能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。
百度百科關(guān)于人工智能的定義詳解中說道:人工智能是計(jì)算機(jī)的一個(gè)分支,二十世紀(jì)七十年代以來被稱為世界三大尖端技術(shù)之一(空間技術(shù)、能源技術(shù)、人工智能)。也被認(rèn)為是二十一世紀(jì)三大尖端技術(shù)(基因工程、納米科學(xué)、人工智能)之一。這是因?yàn)榻陙硭@得了迅速的發(fā)展,在很多學(xué)科領(lǐng)域都獲得了廣泛應(yīng)用,并取得了豐碩的成果,人工智能已逐步成為一個(gè)獨(dú)立的分支,無論在理論和實(shí)踐上都已自成一個(gè)系統(tǒng)。
綜上,從定義上講,人工智能是一項(xiàng)技術(shù)。
基于徑向基函數(shù)強(qiáng)形式的無單元(RBFS)法是真正意義上的無單元方法,但為了追求精度要求卻未達(dá)到稀疏化。本文對(duì)RBFS進(jìn)行了改進(jìn),通過構(gòu)造具有占函數(shù)性質(zhì)的形函數(shù),得到了具有稀疏帶狀性的系數(shù)矩陣,提高了計(jì)算效率,同時(shí)具有RBFS方法的優(yōu)點(diǎn)。通過求解微分方程,得到節(jié)點(diǎn)均布時(shí)影響域半徑與求解精度的關(guān)系曲線,驗(yàn)證了基函數(shù)中自由參數(shù)最佳取值的計(jì)算公式的適用性;并把節(jié)點(diǎn)均布下得到的影響域半徑和自由參數(shù)的規(guī)律應(yīng)用到節(jié)點(diǎn)任意排列的情況下,求解結(jié)果變化不大,均滿足精度要求,由此得出這些規(guī)律仍然適用,這種無單元法對(duì)節(jié)點(diǎn)位置不敏感.
徑向基(RBF)神經(jīng)網(wǎng)絡(luò)python實(shí)現(xiàn)
1 from numpy import array, append, vstack, transpose, reshape, \
2 ? ? ? ? ? ? ? ? ? dot, true_divide, mean, exp, sqrt, log, \
3 ? ? ? ? ? ? ? ? ? loadtxt, savetxt, zeros, frombuffer
4 from numpy.linalg import norm, lstsq
5 from multiprocessing import Process, Array
6 from random import sample
7 from time import time
8 from sys import stdout
9 from ctypes import c_double
10 from h5py import File
11
12
13 def metrics(a, b):
14 ? ? return norm(a - b)
15
16
17 def gaussian (x, mu, sigma):
18 ? ? return exp(- metrics(mu, x)**2 / (2 * sigma**2))
21 def multiQuadric (x, mu, sigma):
22 ? ? return pow(metrics(mu,x)**2 + sigma**2, 0.5)
23
24
25 def invMultiQuadric (x, mu, sigma):
26 ? ? return pow(metrics(mu,x)**2 + sigma**2, -0.5)
27
28
29 def plateSpine (x,mu):
30 ? ? r = metrics(mu,x)
31 ? ? return (r**2) * log(r)
32
33
34 class Rbf:
35 ? ? def __init__(self, prefix = 'rbf', workers = 4, extra_neurons = 0, from_files = None):
36 ? ? ? ? self.prefix = prefix
37 ? ? ? ? self.workers = workers
38 ? ? ? ? self.extra_neurons = extra_neurons
39
40 ? ? ? ? # Import partial model
41 ? ? ? ? if from_files is not None: ? ? ? ? ?
42 ? ? ? ? ? ? w_handle = self.w_handle = File(from_files['w'], 'r')
43 ? ? ? ? ? ? mu_handle = self.mu_handle = File(from_files['mu'], 'r')
44 ? ? ? ? ? ? sigma_handle = self.sigma_handle = File(from_files['sigma'], 'r')
45 ? ? ? ? ?
46 ? ? ? ? ? ? self.w = w_handle['w']
47 ? ? ? ? ? ? self.mu = mu_handle['mu']
48 ? ? ? ? ? ? self.sigmas = sigma_handle['sigmas']
49 ? ? ? ? ?
50 ? ? ? ? ? ? self.neurons = self.sigmas.shape[0]
51
52 ? ? def _calculate_error(self, y):
53 ? ? ? ? self.error = mean(abs(self.os - y))
54 ? ? ? ? self.relative_error = true_divide(self.error, mean(y))
55
56 ? ? def _generate_mu(self, x):
57 ? ? ? ? n = self.n
58 ? ? ? ? extra_neurons = self.extra_neurons
59
60 ? ? ? ? # TODO: Make reusable
61 ? ? ? ? mu_clusters = loadtxt('clusters100.txt', delimiter='\t')
62
63 ? ? ? ? mu_indices = sample(range(n), extra_neurons)
64 ? ? ? ? mu_new = x[mu_indices, :]
65 ? ? ? ? mu = vstack((mu_clusters, mu_new))
66
67 ? ? ? ? return mu
68
69 ? ? def _calculate_sigmas(self):
70 ? ? ? ? neurons = self.neurons
71 ? ? ? ? mu = self.mu
72
73 ? ? ? ? sigmas = zeros((neurons, ))
74 ? ? ? ? for i in xrange(neurons):
75 ? ? ? ? ? ? dists = [0 for _ in xrange(neurons)]
76 ? ? ? ? ? ? for j in xrange(neurons):
77 ? ? ? ? ? ? ? ? if i != j:
78 ? ? ? ? ? ? ? ? ? ? dists[j] = metrics(mu[i], mu[j])
79 ? ? ? ? ? ? sigmas[i] = mean(dists)* 2
80 ? ? ? ? ? ? ? ? ? ? ? # max(dists) / sqrt(neurons * 2))
81 ? ? ? ? return sigmas
82
83 ? ? def _calculate_phi(self, x):
84 ? ? ? ? C = self.workers
85 ? ? ? ? neurons = self.neurons
86 ? ? ? ? mu = self.mu
87 ? ? ? ? sigmas = self.sigmas
88 ? ? ? ? phi = self.phi = None
89 ? ? ? ? n = self.n
90
91
92 ? ? ? ? def heavy_lifting(c, phi):
93 ? ? ? ? ? ? s = jobs[c][1] - jobs[c][0]
94 ? ? ? ? ? ? for k, i in enumerate(xrange(jobs[c][0], jobs[c][1])):
95 ? ? ? ? ? ? ? ? for j in xrange(neurons):
96 ? ? ? ? ? ? ? ? ? ? # phi[i, j] = metrics(x[i,:], mu[j])**3)
97 ? ? ? ? ? ? ? ? ? ? # phi[i, j] = plateSpine(x[i,:], mu[j]))
98 ? ? ? ? ? ? ? ? ? ? # phi[i, j] = invMultiQuadric(x[i,:], mu[j], sigmas[j]))
99 ? ? ? ? ? ? ? ? ? ? phi[i, j] = multiQuadric(x[i,:], mu[j], sigmas[j])
100 ? ? ? ? ? ? ? ? ? ? # phi[i, j] = gaussian(x[i,:], mu[j], sigmas[j]))
101 ? ? ? ? ? ? ? ? if k % 1000 == 0:
102 ? ? ? ? ? ? ? ? ? ? percent = true_divide(k, s)*100
103 ? ? ? ? ? ? ? ? ? ? print(c, ': {:2.2f}%'.format(percent))
104 ? ? ? ? ? ? print(c, ': Done')
105 ? ? ?
106 ? ? ? ? # distributing the work between 4 workers
107 ? ? ? ? shared_array = Array(c_double, n * neurons)
108 ? ? ? ? phi = frombuffer(shared_array.get_obj())
109 ? ? ? ? phi = phi.reshape((n, neurons))
110
111 ? ? ? ? jobs = []
112 ? ? ? ? workers = []
113
114 ? ? ? ? p = n / C
115 ? ? ? ? m = n % C
116 ? ? ? ? for c in range(C):
117 ? ? ? ? ? ? jobs.append((c*p, (c+1)*p + (m if c == C-1 else 0)))
118 ? ? ? ? ? ? worker = Process(target = heavy_lifting, args = (c, phi))
119 ? ? ? ? ? ? workers.append(worker)
120 ? ? ? ? ? ? worker.start()
121
122 ? ? ? ? for worker in workers:
123 ? ? ? ? ? ? worker.join()
124
125 ? ? ? ? return phi
126
127 ? ? def _do_algebra(self, y):
128 ? ? ? ? phi = self.phi
129
130 ? ? ? ? w = lstsq(phi, y)[0]
131 ? ? ? ? os = dot(w, transpose(phi))
132 ? ? ? ? return w, os
133 ? ? ? ? # Saving to HDF5
134 ? ? ? ? os_h5 = os_handle.create_dataset('os', data = os)
135
136 ? ? def train(self, x, y):
137 ? ? ? ? self.n = x.shape[0]
138
139 ? ? ? ? ## Initialize HDF5 caches
140 ? ? ? ? prefix = self.prefix
141 ? ? ? ? postfix = str(self.n) + '-' + str(self.extra_neurons) + '.hdf5'
142 ? ? ? ? name_template = prefix + '-{}-' + postfix
143 ? ? ? ? phi_handle = self.phi_handle = File(name_template.format('phi'), 'w')
144 ? ? ? ? os_handle = self.w_handle = File(name_template.format('os'), 'w')
145 ? ? ? ? w_handle = self.w_handle = File(name_template.format('w'), 'w')
146 ? ? ? ? mu_handle = self.mu_handle = File(name_template.format('mu'), 'w')
147 ? ? ? ? sigma_handle = self.sigma_handle = File(name_template.format('sigma'), 'w')
148
149 ? ? ? ? ## Mu generation
150 ? ? ? ? mu = self.mu = self._generate_mu(x)
151 ? ? ? ? self.neurons = mu.shape[0]
152 ? ? ? ? print('({} neurons)'.format(self.neurons))
153 ? ? ? ? # Save to HDF5
154 ? ? ? ? mu_h5 = mu_handle.create_dataset('mu', data = mu)
155
156 ? ? ? ? ## Sigma calculation
157 ? ? ? ? print('Calculating Sigma...')
158 ? ? ? ? sigmas = self.sigmas = self._calculate_sigmas()
159 ? ? ? ? # Save to HDF5
160 ? ? ? ? sigmas_h5 = sigma_handle.create_dataset('sigmas', data = sigmas)
161 ? ? ? ? print('Done')
162
163 ? ? ? ? ## Phi calculation
164 ? ? ? ? print('Calculating Phi...')
165 ? ? ? ? phi = self.phi = self._calculate_phi(x)
166 ? ? ? ? print('Done')
167 ? ? ? ? # Saving to HDF5
168 ? ? ? ? print('Serializing...')
169 ? ? ? ? phi_h5 = phi_handle.create_dataset('phi', data = phi)
170 ? ? ? ? del phi
171 ? ? ? ? self.phi = phi_h5
172 ? ? ? ? print('Done')
173
174 ? ? ? ? ## Algebra
175 ? ? ? ? print('Doing final algebra...')
176 ? ? ? ? w, os = self.w, _ = self._do_algebra(y)
177 ? ? ? ? # Saving to HDF5
178 ? ? ? ? w_h5 = w_handle.create_dataset('w', data = w)
179 ? ? ? ? os_h5 = os_handle.create_dataset('os', data = os)
180
181 ? ? ? ? ## Calculate error
182 ? ? ? ? self._calculate_error(y)
183 ? ? ? ? print('Done')
184
185 ? ? def predict(self, test_data):
186 ? ? ? ? mu = self.mu = self.mu.value
187 ? ? ? ? sigmas = self.sigmas = self.sigmas.value
188 ? ? ? ? w = self.w = self.w.value
189
190 ? ? ? ? print('Calculating phi for test data...')
191 ? ? ? ? phi = self._calculate_phi(test_data)
192 ? ? ? ? os = dot(w, transpose(phi))
193 ? ? ? ? savetxt('iok3834.txt', os, delimiter='\n')
194 ? ? ? ? return os
195
196 ? ? @property
197 ? ? def summary(self):
198 ? ? ? ? return '\n'.join( \
199 ? ? ? ? ? ? ['-----------------',
200 ? ? ? ? ? ? 'Training set size: {}'.format(self.n),
201 ? ? ? ? ? ? 'Hidden layer size: {}'.format(self.neurons),
202 ? ? ? ? ? ? '-----------------',
203 ? ? ? ? ? ? 'Absolute error ? : {:02.2f}'.format(self.error),
204 ? ? ? ? ? ? 'Relative error ? : {:02.2f}%'.format(self.relative_error * 100)])
205
206
207 def predict(test_data):
208 ? ? mu = File('rbf-mu-212243-2400.hdf5', 'r')['mu'].value
209 ? ? sigmas = File('rbf-sigma-212243-2400.hdf5', 'r')['sigmas'].value
210 ? ? w = File('rbf-w-212243-2400.hdf5', 'r')['w'].value
211
212 ? ? n = test_data.shape[0]
213 ? ? neur = mu.shape[0]
214 ?
215 ? ? mu = transpose(mu)
216 ? ? mu.reshape((n, neur))
217
218 ? ? phi = zeros((n, neur))
219 ? ? for i in range(n):
220 ? ? ? ? for j in range(neur):
221 ? ? ? ? ? ? phi[i, j] = multiQuadric(test_data[i,:], mu[j], sigmas[j])
222
223 ? ? os = dot(w, transpose(phi))
224 ? ? savetxt('iok3834.txt', os, delimiter='\n')
225 ? ? return os
標(biāo)題名稱:徑向基函數(shù)Python,徑向基函數(shù)理解
標(biāo)題鏈接:http://aaarwkj.com/article4/dsiijie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、ChatGPT、定制網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)