不确定这是否是这个问题的好地方,但我被告知CrossValidated不是。所以,所有这些问题都指的是sklearn,但如果你对逻辑回归有一般的见解,我也很乐意听到它们。
1)数据是否必须标准化(平均0,stdev 1)?
2)在sklearn中,如何指定我想要的正则化类型(L1与L2)?请注意,这与惩罚不同;惩罚是指分类错误,而不是系数的五元组
3)我如何使用变量选择?即,类似于用于线性回归的套索。
4)使用正则化时,如何优化C,正则化强度?是否有内置的东西,或者我自己必须自己处理?
可能一个例子最有帮助,但我对任何这些问题的见解表示感谢。
这是我的出发点:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
非常感谢你!
答案 0 :(得分:5)
1)对于逻辑回归,没有。您没有计算实例之间的距离。
2)您可以指定 //Socket TCP declaration
InetAddress serverAddr = InetAddress.getByName(IP);
try
{
Socket mySocket = new Socket(serverAddr, PORT);
}
catch(Exception e)
{
e.printStackTrace();
}
//Thread 1
Thread t1 = new Thread(new Runnable()
{
@Override
public void run()
{
BufferedReader myReader1 = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "UTF-8"));
Scanner myScanner1 = new Scanner(myReader1).useDelimiter("\0");
synchronized(mySocket)
{
while(mySocket.isConnected() && myScanner1.hasNext())
{
String s = myScanner1.next();
}
}
}
});
Thread t2 = new Thread(new Runnable()
{
@Override
public void run()
{
BufferedReader myReader2 = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "UTF-8"));
Scanner myScanner2 = new Scanner(myReader2).useDelimiter("\0");
synchronized(mySocket)
{
while(mySocket.isConnected() && myScanner2.hasNext())
{
String s = myScanner2.next();
}
}
}
});
t1.start();
t2.start();
或penalty='l1'
参数。请参阅LogisticRegression page。 L2惩罚是默认的。
3)scikit-learn提供了各种明确的特征选择技术,例如:使用SelectKBest和chi2排名功能。
4)您需要为最佳参数执行Grid Search。