Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PSO优化SVM参数的Python代码_Python_Svm_Particle Swarm - Fatal编程技术网

PSO优化SVM参数的Python代码

PSO优化SVM参数的Python代码,python,svm,particle-swarm,Python,Svm,Particle Swarm,我正在尝试在支持向量机(SVM)上实现粒子群优化以优化成本和伽马参数(径向基函数)以提高精度。SVM程序从mysql数据库中获取数据,运行良好。现在我需要一个PSO代码来优化成本和伽马参数,并将其用于SVM程序。 以下是svm和pso代码。Svm工作正常,但PSO代码不工作。 代码是用python编写的。 请帮忙 SVM代码: import MySQLdb import cgi import cgitb import pandas as pd import numpy as np from

我正在尝试在支持向量机(SVM)上实现粒子群优化以优化成本和伽马参数(径向基函数)以提高精度。SVM程序从mysql数据库中获取数据,运行良好。现在我需要一个PSO代码来优化成本和伽马参数,并将其用于SVM程序。 以下是svm和pso代码。Svm工作正常,但PSO代码不工作。 代码是用python编写的。 请帮忙

SVM代码:

import MySQLdb
import cgi
import cgitb
import pandas as pd 
import numpy as np 
from sklearn.cross_validation import train_test_split
from sklearn import preprocessing, cross_validation, svm 
from sklearn.svm import SVR
import mysql.connector as sql
import pandas as pd
cgitb.enable()
print 'Content-type: text/html\r\n\r'
form = cgi.FieldStorage()
e1= form.getvalue('EARNING_PER_SHARE', '')
e2 = form.getvalue('CASH_INVESTMENT', '')
e3 = form.getvalue('CURRENT_LIABILITY', '')
e4 = form.getvalue('TOTAL_REVENUE', '')
e5 = form.getvalue('GROSS_PROFIT', '')
db = MySQLdb.connect(host="127.0.0.1", db="cisco", user="root", passwd="")
cursor = db.cursor()
cursor.execute("""
INSERT INTO table1 (EARNING_PER_SHARE, CASH_INVESTMENT, CURRENT_LIABILITY, 
TOTAL_REVENUE,GROSS_PROFIT) 
VALUES (%s, %s, %s, %s, %s)
""", (e1, e2, e3, e4,e5))
db.commit()
db.close()
db_connection = sql.connect(host='127.0.0.1', database='cisco', user='root', 
password='')
db_cursor = db_connection.cursor()
db_cursor.execute('SELECT * FROM table1')
table_rows = db_cursor.fetchall()
df = pd.DataFrame(table_rows)
np = df.as_matrix()
X = df.drop([4], 1)
np1 = X.as_matrix()
y = df[4]
np2 = y.as_matrix()
x_train, x_test, y_train, y_test = train_test_split(np1, np2, test_size=0.3)
clf = svm.SVR()
clf.fit(np1, np2)
confidence = clf.score(np1, np2)
for k in ['rbf']:
clf = svm.SVR(kernel=k, C=100, gamma=0.0001)
clf.fit(np1, np2)
confidence = clf.score(np1, np2)
print(k,confidence)
a = clf.predict(np1)
print ('\npredicted values')
print (a)
print ('\nreal values')
print (np2)
PSO代码:

def fitness_function(a,x,np2,np1,C,gamma,):    
C = x[0]
gamma = x[1]
clf = svm.SVR(kernel=k, C=10, gamma=0.0001,swarmsize=50)
clf.fit(np1, np2)
confidence = clf.score(np1, np2)
print(k,confidence)
mse = sqrt(mean_squared_error(np2, a))
return mse
lb = [10, 0.0001]
ub = [1000,0.1]
xopt, fopt = pso(fitness_function, lb, ub)

我想使用RMSE作为适应度函数,但我认为适应度函数必须包括要优化的参数。但是,在SVR中,目标函数太复杂,无法用python编写。

什么具体不起作用?PSO代码不起作用。我想使用RMSE作为适应度函数,并获得成本和伽马的优化值。5倍交叉验证也可用于估计给定参数集的RMSE。什么具体不起作用?PSO代码不起作用。我想使用RMSE作为适应度函数,并获得成本的优化值,gamma.5倍交叉验证也可用于估计给定参数集的RMSE。